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.
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'