> ## Documentation Index
> Fetch the complete documentation index at: https://www.minitap.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Troubleshooting sign-in

> What to do when Mini can't sign in to your app, from a wrong test account to email codes, phone OTP, Google sign-in and captchas.

A scenario that never gets past the sign-in screen usually comes back **Not tested** or with a question from Mini. This page goes from what you see to the fix. How to set up each kind of sign-in is in [Test accounts and sign-in](https://www.minitap.ai/docs/minitest/setup/test-accounts.md).

| You see | Go to |
| - | - |
| Mini types the credentials and the app refuses them | [Wrong or missing test account](#wrong-or-missing-test-account) |
| Mini asks you about the account, or the app says it's locked | [Locked or rate-limited accounts](#locked-or-rate-limited-accounts) |
| The app asks for a code from an authenticator app | [Two-factor codes](#two-factor-codes) |
| **Waited for a sign-in code, none arrived** | [Email codes and verification links](#email-codes-and-verification-links) |
| Mini stops on the SMS code screen | [Phone OTP](#phone-otp) |
| Google sign-in fails | [Google sign-in fails](#google-sign-in-fails) |
| A "Verify you are human" page or a puzzle | [Captchas and bot protection](#captchas-and-bot-protection) |

When Mini can't sign in for a reason only you can clear, like a rejected password or a locked account, it doesn't report a bug in your app. It asks you on the run page, and the scenario shows **Needs input**. Fix the account, then answer with **Send answer** and the scenario runs again. See [Mini is waiting on something](https://www.minitap.ai/docs/minitest/troubleshooting/runs.md#mini-is-waiting-on-something).

## Wrong or missing test account

Open the scenario, go to its **Setup** tab and check **Test accounts**. Then open the account in **Builds & test data → Test accounts**.

* **No account attached.** Mini opens the app as a visitor. Click **+ Add test account** and pick the right one. Turn on **Use by default** on the account most scenarios need, so new scenarios get it.
* **The account doesn't exist in your app.** Register it in your app first, with the same email and password, unless the scenario is a sign-up flow.
* **The password changed.** Saved passwords show as unchanged until you type a new one. Type the current password and save.
* **The wrong kind of user.** A free account can't reach a premium screen. Create one test account per kind of user, and say in its **Note** what makes it different.

The **What Mini can do** box in the account editor sums up which sign-ins Mini can complete with that account, and what is still needed on your side.

![Test account editor: password and test card pointing to secrets, Phone login off, and What Mini can do listing sign-in with email and password, email verification not readable, and the account to create on your side](https://mintcdn.com/minitap-30239763/QCLbAMcddko_3eZy/minitest/images/app/test-account-what-mini-can-do.png?fit=max\&auto=format\&n=QCLbAMcddko_3eZy\&q=85\&s=f70f146a55f9993f30a216e2f0f7f4bc)

What Mini can do sums up which sign-ins this account allows.

## Locked or rate-limited accounts

Repeated sign-ins can trip your backend's protection, especially when several scenarios use the same account at once.

* Unlock the account or reset its attempt counter in your backend, then answer Mini's question.
* If your app allows one active session per account, turn on **One run at a time** on the test account. Other scenarios wait for it to free up instead of signing each other out.
* Give scenarios that run in parallel their own test accounts. It also makes runs shorter.
* Raise or turn off the sign-in rate limit for test accounts in your staging environment.

## Two-factor codes

| Your app asks for | What to set up |
| - | - |
| A code from an authenticator app | In **Builds & test data → Secrets**, add a secret of kind **OTP seed** with the base32 seed or the `otpauth://` URL. On the test account, point **OTP** to that secret. Mini generates the live 6-digit code at sign-in. |
| A fixed code your staging backend accepts | A **Text** secret, pointed to from the account's **OTP** field. |
| A code sent by email | An `@qa.minitap.ai` address on the account. See below. |
| A code sent by SMS | A static code, see [Phone OTP](#phone-otp). |

Secrets are covered in [Secrets and files](https://www.minitap.ai/docs/minitest/setup/secrets-and-files.md).

## Email codes and verification links

Mini reads codes and follows verification links only on `@qa.minitap.ai` addresses. It can't read Gmail, Outlook or your company mailboxes.

* **The account uses another domain.** Change its **Email address** to an `@qa.minitap.ai` address, and create the account with that address in your backend if it needs a given state.
* **The address belongs to another workspace.** The dashboard says Mini can't read its emails. Pick a more specific name, like `acme-admin@qa.minitap.ai`.
* **No code arrived.** Open **View emails** on the test account, or the run report's **Emails** tab, to see what reached the inbox. If nothing did, check that your staging environment sends email to that address.

How these inboxes work is in [Test inboxes](https://www.minitap.ai/docs/minitest/setup/test-inboxes.md).

## Phone OTP

Mini never receives a real SMS. It types the phone number from the test account, then the **Static OTP code** you pinned for that number in staging.

* **Mini stops at the SMS screen.** The account has **Phone login** on but no **Static OTP code**. Add it.
* **The app rejects the code.** Your backend doesn't accept that code for that number yet. Whitelist the number and pin the code, see [phone number sign-in](https://www.minitap.ai/docs/minitest/setup/test-accounts.md#phone-number-sign-in).
* **The app rejects the number.** Enter it in international format, with the country code: `+33612345678`.

## Google sign-in fails

Attach one of the Google accounts **Shared by Minitap** to the scenario. Minitap maintains them, 2-Step Verification included, so there is nothing to create.

If sign-in fails on Android only, the app's signing certificate is the usual cause. Google checks it, and Mini signs the Android builds it makes with its own key:

* **Builds from your repository**: copy the **SHA-1** from **Builds & test data → Builds → App signing**.
* **An uploaded `.aab`**: run `minitest build signing-certificate` to print the SHA-1 of your workspace's key.

Register that SHA-1 in your Firebase project, or as an Android OAuth client in Google Cloud, then run again. Regenerating the app's signing key changes the SHA-1, so register the new one and rebuild. See [Android signing](https://www.minitap.ai/docs/minitest/setup/builds-from-repo.md#android-signing).

## Captchas and bot protection

Mini handles a security check the way a person would:

* **On web**, when a page asks you to "Verify you are human" with a checkbox, Mini ticks it. When the page checks your browser on its own, Mini waits for it to clear, for up to 3 minutes.
* **On mobile**, when the app or a web view shows a block page instead of its content, Mini waits about 30 seconds and tries once more.

Mini doesn't solve image or puzzle challenges. When a challenge or a block doesn't clear, the scenario isn't reported as a bug in your app: it's a block outside the app, and the Minitap team sees it.

The reliable fix is on your side: turn captchas off for your test environment, or use your captcha provider's test keys there. If you can't change it, or a check keeps blocking runs, send the run ID to the Minitap team in your Slack channel or [book a call](https://cal.com/team/minitap/minitap-get-access?overlayCalendar=true).

## Next steps

> [card] [Test accounts and sign-in](https://www.minitap.ai/docs/minitest/setup/test-accounts.md)
>
> Every kind of sign-in, and how to attach accounts to scenarios.

> [card] [Test inboxes](https://www.minitap.ai/docs/minitest/setup/test-inboxes.md)
>
> How Mini reads email codes and magic links.

> [card] [Troubleshooting runs](https://www.minitap.ai/docs/minitest/troubleshooting/runs.md)
>
> Mini's questions, Not tested verdicts and false failures.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.