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

# Fix slow or failing first requests (cold starts)

> Use this when the server is intermittently slow or unreachable after a quiet period — turn on Always Ready Mode so an instance stays warm instead of scaling to zero.

By default the server **scales to zero when it is idle**. The next request after a quiet
period has to start the container and validate the license before it can be served, which
takes noticeably longer than a normal request — and can be slow enough that the caller gives
up first.

## When you need this

<Warning>
  **Symptom:** the server works fine most of the time, but occasionally a scenario is very slow
  or fails with a connection error — and running it again straight away succeeds. Failures
  cluster after periods of no activity.
</Warning>

This pattern is a cold start, not a broken deployment. If the server fails **consistently**
rather than intermittently, this page is not the fix — see
[Troubleshooting](/troubleshooting).

## Turn on Always Ready Mode

You do this yourself on the App Status page —
**[make.magicmealkits.com/app-status](https://make.magicmealkits.com/app-status)**.

<Steps>
  <Step title="Open App Status">
    Go to **[make.magicmealkits.com/app-status](https://make.magicmealkits.com/app-status)**
    and sign in with the account you use for your deployment.
  </Step>

  <Step title="Find Scaling Settings">
    Scroll to the **Scaling Settings** card at the bottom right of the page.
    **Always Ready Mode** shows as **DISABLED** by default.

    <Frame>
      <img src="https://mintcdn.com/mmk-5fd4bbfe/UHvTxhzroEk38PMC/assets/operations/cold-starts/always-ready.png?fit=max&auto=format&n=UHvTxhzroEk38PMC&q=85&s=da9780332f5fd7285e08e2531156a40e" alt="App Status page with the Scaling Settings card at the bottom right showing Always Ready Mode set to DISABLED" width="2312" height="1594" data-path="assets/operations/cold-starts/always-ready.png" />
    </Frame>
  </Step>

  <Step title="Enable it">
    Click the toggle. It keeps one instance warm (minimum instances = 1) so requests are
    served immediately instead of waiting for a container to start.

    The change applies to the running service — no redeploy needed.
  </Step>

  <Step title="Confirm">
    Re-run the scenario that was failing. Response times should be consistent from the first
    request, with no slow outlier after an idle period.
  </Step>
</Steps>

## Cost

<Warning>
  Always Ready Mode keeps an instance running around the clock, so the service **no longer
  scales to zero** and usage continues while idle. This is billed by Google Cloud and will
  take you past the always-free tier. The App Status page labels the enabled state
  **Premium Cost** for this reason.
</Warning>

Leave it **off** if occasional slow first requests are acceptable — scheduled scenarios that
run every few minutes usually keep the instance warm on their own, and cold starts only show
up after genuinely quiet periods. Turn it **on** when requests must respond predictably, such
as webhooks or user-facing automations.

See [Google Cloud billing](/operations/google-cloud-billing) for how billing is set up on
your project.

## Related

* Slow under load rather than after idling? That is a memory problem, not a cold start —
  see [Performance & memory](/operations/upgrade-performance).
