Errors
Every error StartupBuilder returns, with its cause and its fix.
Each error page gives the cause, the fix, and the Verbs that raise it.
| Error | Status | Cause | Fix |
|---|---|---|---|
| Missing key | None. | The Startup root file leaves out a key it requires, such as the Startup’s name. | Add the key named in the error to the root file, then push again. |
| Not literal | None. | A key in the Startup root file is computed by a loop, a call or an expression, so it cannot be parsed. | Write the value as a literal or a Template spread; move code that has to run into code/ |
| Setting set twice | None. | A Setting is set both in the Startup root file and in the Settings file, so its value has two homes. | Keep the Setting in one file and delete it from the other, then push again. |
| Wrong type | None. | A key in the Startup root file holds a value of another type than the key takes. | Change the value to the type the key reference lists, then push again. |
| Invalid input | 400 | The input does not match the schema of the operation. | Read the schema of the operation, then send every required field with the right type. |
| Mode not allowed | 400 | The call asks for a Mode the Verb does not accept. | Call the Verb in its default Mode, or in another Mode its reference lists. |
| Unauthorized | 401 | The request carries no key, or its key is expired or revoked. | Sign in again, or send a current key as a bearer token. |
| Payment required | 402 | The operation is part of an Offer the caller has not accepted or paid for. | Accept the Offer named in the response, then retry the call. |
| Forbidden | 403 | The key is valid, but its scopes do not allow this operation. | Use a key whose scopes cover the operation, or ask an owner of the namespace to grant them. |
| Limit exceeded | 403 | The call went over what the caller is allowed, and the approval it waited for was refused. | Ask an owner of the namespace to raise the allowance, or call again within it. |
| Not found | 404 | No record, Noun, or Verb exists at the path, or the caller cannot see it. | Check the namespace and the id, or search for the record first. |
| Card program pending | 409 | The card program of the Startup’s owner of record awaits its grant, so no Card can be issued. | Call again once the program is granted; nothing on the Startup’s side changes. |
| Charges disabled | 409 | Stripe disabled charges on the Startup’s payment account because a requirement passed its deadline. | Have the owner of record complete the open requirement Task; charges and paid Offers resume on re-enable. |
| Conflict | 409 | The record changed since it was read, so the write would overwrite a newer version. | Read the record again, then retry the write against its current state. |
| Idempotency mismatch | 409 | The idempotency key already names an Action with a different operation or input, so nothing runs. | Send a new idempotency key for the new request, or resend the original input to read the first Action. |
| Below contribution floor | 422 | The median Customer’s Cost leaves less than the Startup’s target margin at this Price. | Raise the Price to the floor the error names, or grant fewer Entitlements. |
| Refused | 422 | The record is not in a state that allows this Verb, so the call is refused. | Read the record, run the Verb that moves it to an allowed state, then retry. |
| Rate limited | 429 | The caller sent more requests than its rate allows. | Wait the number of seconds in the Retry-After header, then retry. |
| Not live | 503 | The call uses a live key, and the Startup has no deployed Version. | Use a test key, or deploy a Version of the Startup, then retry. |