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

# FAQ

> Quick answers to the questions our support team hears most often.

The most common questions builders ask us, with short answers and links to the longer guides. If you don't find what you need here, the [Discord community](https://discord.com/invite/sPbqWqgcMf) and [support@newly.app](mailto:support@newly.app) are both good next steps.

## Building & iterating

<AccordionGroup>
  <Accordion title="Should I build on Android or iOS while iterating?">
    Android, in most cases. The Android simulator boots faster and doesn't go through Expo's pipeline, so it has fewer steps that can fail between you and a working app. Switch to iOS when you need to verify something iOS-specific (Apple sign-in, Apple Pay, an iPad-only layout) and when you're ready to ship to TestFlight.

    Full breakdown: [Recommended dev loop](/guides/recommended-dev-loop).
  </Accordion>

  <Accordion title="The AI broke my app – how do I undo it?">
    Use the **Restore** button next to any previous chat message. It rolls your project back to that exact point, dependencies and project state included. Restoring is almost always faster than prompting your way out of a broken state, and it costs zero credits.

    Restoring from chat history is also more reliable than pasting code from a downloaded ZIP – the chat history Restore preserves dependency versions, not just files.
  </Accordion>

  <Accordion title="The AI keeps making the same wrong fix. What can I do?">
    Switch the prompt from *"fix the bug"* to *"diagnose, then fix"*. Tell the AI to read the relevant file, run the failing action, and explain what's wrong before making any changes:

    ```
    Before changing any code, read [path] and the relevant logs, and tell me what's causing the error. Don't change anything yet.
    ```

    This usually lands a fix in one round instead of three. More on the pattern in [How to save credits](/guides/save-prompts#diagnose-first-then-fix).
  </Accordion>

  <Accordion title="When should I use Ask mode?">
    For any prompt that's a question, not a code change. "What does this error mean?" or "How does my auth flow work?" should go through Ask mode, which costs about 10× fewer credits than a build request.

    Switch via the build dropdown above the chat input.
  </Accordion>

  <Accordion title="Can I edit code directly instead of going through the AI?">
    Yes. The file viewer on the left side of the project view lets you open and edit any file. Save and your changes land on disk immediately – no AI involvement, no credit cost.

    Useful for small tweaks (a copy change, a color value) where prompting would be more work than just typing.
  </Accordion>
</AccordionGroup>

## Preview, simulator, and builds

<AccordionGroup>
  <Accordion title="Why does the feature show up in Newly preview but not in TestFlight?">
    They're different runtimes. Newly preview re-bundles your JS live as you save, so changes show up immediately. TestFlight runs a frozen native binary from your last EAS build – so any code change you made after that build isn't in TestFlight until you trigger a new build and upload it.

    Full explanation: [Preview vs builds](/guides/preview-vs-builds).
  </Accordion>

  <Accordion title="Why is the web preview stuck on 'Loading preview...'?">
    Usually a native-only package (most commonly OneSignal) that can't run in the browser. Switch to the iOS or Android simulator tab and build there.

    Walkthrough: [Preview troubleshooting](/guides/preview-troubleshooting#web-preview-stuck-on-loading-preview).
  </Accordion>

  <Accordion title="Why does iOS preview show 'Welcome to Newly, your app is currently building'?">
    Usually the AI updated your Android and web screens but missed the matching iOS ones. Ask the AI to update the iOS version of your app so it matches what you see on web and Android.
  </Accordion>

  <Accordion title="Add-member or save buttons throw 'session expired' in the web preview">
    The web preview wraps your app in an iframe, which can interfere with auth tokens on certain endpoints. Test the same action in Expo Go on a simulator or your phone – it almost always works there without any code change.

    Full context: [Preview vs builds – web preview iframe](/guides/preview-vs-builds#common-confusions-explained).
  </Accordion>

  <Accordion title="My code change is on disk but Expo Go still shows the old version">
    Force-close Expo Go on your device and re-scan the QR code. Expo Go caches a connection to the previous bundle, and a fresh QR scan picks up the new one.
  </Accordion>
</AccordionGroup>

## Deploy & ship

<AccordionGroup>
  <Accordion title="How do I get my app onto TestFlight?">
    From inside your project, open the **Deploy** tab and trigger an iOS production build. When it finishes, the Deploy tab gives you the option to send the build to App Store Connect – that's what makes it appear in TestFlight.

    Full deployment flow: [Deployment](/features/deployment).
  </Accordion>

  <Accordion title="Why is my AAB rejected by Google Play with 'wrong package name'?">
    Two things to check. First, confirm `android.package` in your `app.json` matches what Google Play expects. Second, if you recently changed the bundle ID, make sure both sides got updated – see [Changing your bundle ID](/guides/bundle-id-changes).
  </Accordion>

  <Accordion title="I renamed my bundle ID but EAS still uses the old one">
    Bundle ID changes are a two-step update – saving the new bundle in Apple Credentials updates your project, but doesn't push the new value to OneSignal's APNs config. The full sequence is in [Changing your bundle ID](/guides/bundle-id-changes).
  </Accordion>

  <Accordion title="My build keeps failing – how do I see the actual error?">
    Open the **Logs** panel in your project and look at the Build Logs section. The relevant error is usually a line with `FAILED` or `error:` near the bottom. Paste that into the chat with one line of context and the AI can usually fix it.

    Full guide: [Using logs to debug](/guides/using-logs-to-debug).
  </Accordion>
</AccordionGroup>

## Credits & subscription

<AccordionGroup>
  <Accordion title="What happened to 'prompts'? I see 'credits' everywhere now">
    Same thing, renamed. We switched the term from *prompts* to *credits* in May 2026 to match the way most builders were already thinking about usage. No change in how billing works.
  </Accordion>

  <Accordion title="I'm running out of credits before my renewal – can I top up?">
    Yes. The pricing page has a credit top-up option – a one-time purchase that adds credits to your account without changing your plan or billing cycle.

    Go to **newly.app/pricing** → **Usage** tab.
  </Accordion>

  <Accordion title="Does Ask mode use a full credit?">
    No, it costs about 10× less than a standard build request. Use it for anything that's a question rather than a code change.
  </Accordion>

  <Accordion title="Did the 'Fix with AI' button just deduct a credit?">
    The crash banner's "Fix with AI" button itself is free – that specific click doesn't cost a credit. What does cost credits is follow-up chat after that fix attempt (retries, "this still isn't right", etc.). So if you saw credits go down around the time you clicked it, the cause is usually the chat that followed, not the click.
  </Accordion>

  <Accordion title="How do I cancel my subscription?">
    See [Cancel subscription](/guides/cancel-subscription). You can self-serve from your billing page.
  </Accordion>

  <Accordion title="How do I delete my account?">
    Open the profile menu (your avatar) → **Settings** → the **Danger zone** tab, then confirm with your account email. Deletion is permanent and removes all your projects; if you have a paid plan it's cancelled automatically (no refund for unused time). Full details, and the lighter options to consider first, are in [Delete your account](/guides/delete-account).
  </Accordion>
</AccordionGroup>

## Common AI quirks

<AccordionGroup>
  <Accordion title="The AI said it made a change, but nothing happened">
    First, click **Restore** on the message right before the AI's "applied" response and try again with a more specific prompt. If the same thing happens, switch to using the file viewer directly for small edits, or ask the AI to produce a unified diff that you apply yourself:

    ```
    Do not write any files. Produce all changes as unified diffs in code blocks. I will apply them via the file viewer.
    ```

    If the issue persists across multiple sessions on the same project, send us a message at [support@newly.app](mailto:support@newly.app) with your project name and we'll take a look.
  </Accordion>

  <Accordion title="The AI keeps telling me 'this is a Newly platform issue, contact support'">
    Sometimes that's accurate. More often, it's the AI's fallback when it can't pinpoint the actual bug. Before opening a ticket, try the diagnose-first prompt:

    ```
    Read the relevant file and the logs. Tell me what specifically is failing and what line of code or config is responsible. Don't say it's a platform issue without checking first.
    ```

    If after that the AI still says it's a platform issue with specifics (an exact endpoint, a specific error in our infrastructure), that's worth a support ticket. If it just repeats the framing, it's almost always a code issue the AI hasn't found yet.
  </Accordion>

  <Accordion title="My iOS app shows up but my changes from this session aren't there">
    If you're testing in TestFlight or a previously-built iOS binary, that build doesn't contain anything you've changed since the build was triggered. Trigger a fresh iOS build from the Deploy tab and upload the new build. See [Preview vs builds](/guides/preview-vs-builds) for the full breakdown.
  </Accordion>
</AccordionGroup>

## Still stuck?

If your question isn't answered here:

* Ask in the [Discord community](https://discord.com/invite/sPbqWqgcMf) – fastest for general questions.
* Use the in-app support widget to reach out to support without leaving your project.
* Email [support@newly.app](mailto:support@newly.app) for anything account-specific, billing-related, or where you need someone to look at your project directly.

When you write in, including your project name and a screenshot of what you're seeing saves us (and you) a round-trip.
