# Macro Automation Studio Not Working? Errors and Fixes

> Fixes for when Macro Automation Studio is not working: sign-in, missing devices, image not found, OCR misreads, script errors, stuck cloud devices and credits.

Source: https://automationmacro.com/docs/troubleshooting (Account, updated 2026-09-04)

When Macro Automation Studio (MAS) is not working, start here: this page collects the problems people hit most often. Each entry gives the likely cause, a short fix, and a link to the page that goes deeper. Emulator connection problems have their own page, [ADB troubleshooting](/docs/adb-troubleshooting).

## Sign-in

### Sign-in fails

- "Invalid credentials": check the email and password, or click **Forgot password?** to reset it with the code MAS emails you.
- "This email is registered with Google and has no password": click **Sign in with Google**. Your browser opens and the app continues after "Login Successful".
- "Too many attempts": wait the number of seconds shown, then try again.
- A new account must be activated first. Enter the one-time password from the activation email; click **Resend** if it did not arrive.
- After sign-in MAS checks your subscription. Without a trial or a paid plan it opens the Subscription page. See [Billing](/docs/billing).

## Devices

### Device not found: the app shows no devices

The **Port** list in **Add New Device** is built from running emulator processes, not from `adb devices`. Wait until the emulator shows the Android home screen, then click **Refresh**. If the list stays empty, ADB is switched off in the emulator or the port is outside the range MAS knows; use **Custom Port** in that case. The switches, ports and adb commands for BlueStacks, LDPlayer, MuMu Player, MEmu and Nox are on the [ADB troubleshooting](/docs/adb-troubleshooting) page.

### Device found but the macro does nothing

The device card reads Running and nothing happens on the screen.

- Check that a macro is selected on the card. The card says "This device has no macro assigned" when none is.
- Open the card's **Logs** tab. A script that finds nothing usually loops quietly: `find_object` returns `None` on a miss and never raises.
- Make sure the app is open on the device and on the screen the macro expects. Most macros start with `mas.open_app()` and a template check.
- Compare the emulator's resolution with the one the templates were captured at. A macro built on one resolution misses on another.
- On a cloud device, the device must be **Ready** before **Run** is enabled.

## Vision

### Image not found

Two different things carry this name.

- `find_object` returns `None`: the template is not on screen at the default `threshold=0.8`. Lower the threshold a little, narrow the search with `search_region`, or recapture the template at the current resolution in [Asset Lab](/docs/asset-lab). Templates are matched pixel for pixel, so a different resolution, DPI or theme breaks the match.
- `ImageNotFoundError`: the image id does not exist in your Image Library, or the file could not be loaded. Check the id in your `mas.images({...})` block against the library.

```python
import mas

images = mas.images({"claim_button": 123})
match = mas.find_object_retry(images.claim_button, total_tries=3, time_sleep=2.0, threshold=0.7)
if match:
    mas.click(match.x, match.y)
else:
    mas.log("claim button not on screen")
```

### OCR reads wrong text

`read_text` runs Tesseract on the region you give it, so the region and the settings decide the result.

- Tighten the region to the text alone. Icons or a second line inside the region confuse the reader.
- Match `psm` to the shape of the text: `psm=7` for one line (the default), `psm=8` for a single word, `psm=6` for a block, `psm=11` for sparse text.
- Set `color_conversion=ColorConversion.BLACK_WHITE` for text on a noisy or coloured background.
- Test the region in Asset Lab before you put it in code. The [OCR guide](/docs/guides/ocr-text-reading) covers digits, timers and patterns.

```python
import mas
from mas import Region, ColorConversion

result = mas.read_text(
    region=Region(x1=100, y1=200, x2=900, y2=260),
    psm=7,
    color_conversion=ColorConversion.BLACK_WHITE,
)
print(result.text, result.confidence)
```

## Scripts and logs

### Script errors

The traceback tells you which side failed.

- `DeviceNotConnectedError` on the first call: the device dropped. Restart the emulator and click **Start** on the card; see [ADB troubleshooting](/docs/adb-troubleshooting).
- `TimeoutError`: a wait ran out. Raise `total_tries` or `time_sleep` in `find_object_retry`, or check that the screen you wait for can appear at all.
- `AuthenticationError` or `SubscriptionError`: the app could not confirm your sign-in or subscription with the server, often a network hiccup. Sign in again and rerun; see [Billing](/docs/billing) if it persists.
- A plain Python error (`NameError`, `IndexError`, an import that fails): fix the code in the Code Editor, where the LSP underlines most of these before you run.

Every SDK exception is listed on the [Errors](/docs/sdk/errors) page.

### Where logs live

| Log | Where |
|---|---|
| A run started from the Code Editor | The **Console** panel under the editor |
| A run on a device card | The card's **Logs** tab in **Device Groups**, with **User**, **Exec**, **Errors** and **Warnings** filters; **Save** writes them to a file |
| Every run on your account | The **Runs** page, with status, device, start, end and duration, kept after the app closes |
| Scheduler runs | `%AppData%\MacroAutomationStudio\scheduler_logs` on Windows, `~/Library/Application Support/MacroAutomationStudio/scheduler_logs` on Mac |
| Agent sessions | The chat itself; the engine keeps its traces under `%AppData%\MacroAutomationStudio\agent-state` on Windows and `~/Library/Application Support/MacroAutomationStudio/agent-state` on Mac |
| The app | `C:\ProgramData\MacroAutomationStudio\logs` on Windows, `~/Library/Application Support/MacroAutomationStudio/logs` on Mac |

## Cloud devices

### A cloud device is stuck

A cloud device moves through Placing, Starting, Ready, Stopping and Stopped, and shows Error when a stage fails. The card shows the elapsed time and the usual duration for each stage.

- Stuck in Starting or Stopping well past the usual time: click **Stop**, wait for Stopped, then **Start** again. Stopping keeps everything on the device.
- "You're already running your plan's limit": stop another device to start this one.
- The stream will not open: the device must be Ready, and only one viewer can watch at a time.
- A device that sat idle stops itself after an hour; start it again when you need it.

The states, the stream and installing apps are on the [Cloud devices](/docs/cloud-devices) page.

## Runs

### A run stopped without a reason

Open the **Runs** page and filter by **Failed** or **Stopped**. For the cause, read the device card's **Logs** tab, or subscribe to `macro.failed` and `macro.stopped` [webhooks](/docs/webhooks): the payload's `data` object carries `exit_code`, `duration_ms` and an `error` field with the message the run ended on. Scheduled runs need the app open; the [Scheduler](/docs/scheduler) page explains why a job did not fire.

## Account

### Subscription or credit problems

- The API answers `402`: the account has no active subscription, or an agent session ran out of AI credits. Top up on the **Subscription** page and retry.
- A script raises `SubscriptionError`: the app could not confirm the subscription, which does not always mean it lapsed. Check the network and rerun.
- "Payment failed" on the Subscription page: retry the payment or update the card. The grace period, cancelling and reactivating are on the [Billing](/docs/billing) page.

### How to update

MAS updates itself. After sign-in it checks for a newer version and offers **Update Now**. If the dialog reports "Update failed", click **Try Again** or install the current build from the [download page](/download). Details are under [Install](/docs/install#updates).

## Macro Automation Studio still not working? Ask for help

Ask in [Discord](https://discord.gg/macroautomationstudio) or email [support@automationmacro.com](mailto:support@automationmacro.com). Include:

- The MAS version (shown on the sign-in screen) and your operating system.
- The emulator and its version, or the cloud device name.
- The device card's logs (**Save**) and the exact error line or traceback.
- The macro name and, for a MAS Agent problem, the name of the chat.
- For billing, the date, the provider and the email on the account. Never send an API key or a password.
