On Execution Ended

View as Markdown
Fired when the execution is over. Nothing about it will change afterwards. This is the event that closes your case, and **the one to subscribe to if you subscribe to only one**: it is the only event that says the results are there, the only one delivered for an execution that never got to run, and the only one the platform re-delivers if your endpoint was down. <Steps> <Step title="Read the results"> Nothing is pushed here — read it over the authenticated API. The [financial](api:GET/executions/results/{execution_id}/financial/v1/global-position) or [public](api:GET/executions/results/{execution_id}/public/v1/global-position) global position gives you everything at once; the per-product endpoints give you one thing at a time. </Step> <Step title="Store what you need"> On your side, in your own model. The results stay readable while the execution exists, which is not forever. </Step> <Step title="Delete the execution"> [Delete an Execution](api:DELETE/executions/handler/v1/{execution_id}/delete) purges its records and documents. The less of somebody's financial data sits anywhere, the better — including here. </Step> </Steps> `status_reason` says how it ended: | Outcome | What it means | | :--- | :--- | | `COMPLETED` | Every requested feature answered. | | `PARTIAL` | **Also finished.** Some features answered and others did not — the state says which, feature by feature. Read what arrived; the rest will not come later. | | `FAILED` | Nothing could be retrieved. | | `ABORTED` | Cancelled — by you, by the platform, or by a timeout. | | `AUTH_ERROR` · `UNHANDLED_AUTH_ERROR` | The session with the source could never be opened. The preceding `auth_ended` event carries the detail. | | `CONFIGURATION_ERROR` | The request itself was not valid: parameters or configurations. The state lists the offending fields. | | `TEMPORARY_ERROR` | Something on the way was unavailable. The execution is over, but the cause is transient: the same request may well succeed later. | <Tip> **This is the only event the platform re-delivers on its own.** If your endpoint was unreachable when it fired, a background job tries again — so a deploy window does not cost you a case. The other three are delivered once. </Tip> <Warning> **The payload carries no records**, and that is deliberate: an execution event is a notification, which is what keeps somebody's financial data off a public endpoint. Anything that arrives in `data` today is empty. </Warning>