OneShot

All packsApp Store MachinerySolve

app store server api sandbox production 4040010 transactionidnotfound

TestFlight transactions 404 against the production Server API

Calling the App Store Server API's production endpoint for a sandbox (TestFlight) transaction returns an undocumented TransactionIdNotFound -- code has to retry against sandbox itself.

This is one of the things App Store Machinery already handles. Sell subscriptions and one-time unlocks in your iOS app, and get it through App Review.

Buy for $1293 of 3 clean-room builds passed · full refund if it fails on your machine

Is this you?

A TestFlight or sandbox purchase's transaction id genuinely does not exist against the App Store Server API's production endpoint -- calling it there returns error code 4040010 (TransactionIdNotFound), which reads like a real error, not a routing hint. Code that treats this as a hard failure (log it, surface an error to the tester) never actually resolves a huge share of pre-release testing transactions, because nothing tells it to simply try the sandbox endpoint instead.

Why this one is easy to get wrong

There's no documentation stating plainly "if production 404s with this exact code, retry against sandbox" in a way that surfaces before someone hits it -- it's the kind of undocumented operational gap that's typically discovered by trial and error during TestFlight testing, not something derivable from reading the API reference in isolation.

What you get instead

Decision 6 hardcodes the exact routing rule: call the production Server API first, and specifically on APIException error code 4040010, retry the identical call against the sandbox endpoint. Notifications take a parallel but distinct approach -- App Store Connect lets you register both a production and a sandbox URL pointing at the same service path, which reads data.environment from the payload itself to pick the matching verifier instance, so the client side of this needs no special handling at all.

Source: ARCHITECTURE.md decision 6 — checkable in the pack you receive

How you actually use this

You don’t install a library or wire up an SDK. Your own coding agent builds the code in your project, and you keep it — no runtime dependency on us.

  1. Step 1

    Download and unzip

    You get a folder: the docs that tell an agent what to build, a starting skeleton, and the test suite that decides when it's done.

  2. Step 2

    Open it in Claude Code or Cursor

    Point your coding agent at the folder. Nothing to install, no account with us, no API key.

  3. Step 3

    Paste one prompt

    The pack contains the exact prompt. Paste it as your first message and leave it alone — it works through the build itself, choosing a cheaper or stronger model per task.

  4. Step 4

    Run ./verify.sh

    One command. It prints a pass or fail for every check. Green means the build is done — the same script we ran to produce the receipt on this page.

Typical build: about 21 minutes of your agent working, mostly unattended. Then you integrate the working module into your app the way you would any code you’d written yourself.

Why you can believe this

3 of 3 runs passed

We ran this pack from an empty folder 3 times and published exactly what happened — every check, the model, the token cost, the wall time. Not a testimonial, and not our opinion: the same verify.sh you run yourself. Read the full receipt →

Buy for $12914-day refund if verify.sh fails →

Related problems