OneShot

All packsApp Store MachinerySolve

storekit product.products for empty array paid agreement

Product.products(for:) returns nothing until paperwork is done

An empty array from Product.products(for:) usually means the Paid Applications agreement, banking, or tax forms aren't complete in App Store Connect -- not a code bug.

3 of 3 runs passedOne decision inside App Store Machinery (swiftui-storekit2-node).

What goes wrong

Product.products(for:) silently returns an empty array whenever the Paid Applications agreement, banking information, or tax forms aren't fully complete in App Store Connect -- with no error message pointing at the actual cause. A developer whose StoreKit code is entirely correct spends hours debugging product-loading logic, re-checking product identifiers, and re-reading their own code, because nothing in Xcode or the API response indicates the real problem is an unrelated administrative form.

Why agents get it wrong

An empty array from an API call reads as a code or configuration bug in the calling code -- wrong product identifier, wrong bundle id, a StoreKit configuration file issue -- and every one of those is a plausible, debuggable cause that an agent (or developer) would naturally investigate first. The actual cause lives entirely outside the codebase, in App Store Connect's business paperwork, which nothing in the client-side symptom points toward.

What App Store Machinery pre-decides

The onboarding documentation calls this out directly and first, before any debugging steps: an empty products array most commonly means the paid-agreement/banking/tax setup in App Store Connect isn't finished, and that's the first thing to check, not the code. Naming the actual cause up front is meant to save exactly the hours of unproductive code debugging this trap otherwise causes.

Source: LISTING.md, 'The five traps this pack pre-solves'

Coming soon — $129Full receipt and details for App Store Machinery

Related problems