Replay a lost write under the same identity
Repeat the write of an unknown effect under the same provider identity, for adapters that declare sameKeyReplay backed by a provider idempotency key (stripe.refund and resend.email_send, each within its 24-hour window). github.file_update does not offer replay: GitHub has no idempotency key, and the blob-SHA precondition cannot tell a restored file from an unwritten one. A declared action never offers replay either, because it sends no provider idempotency key. A replay is a write and passes every control a first dispatch passes: the reviewed binding and preview expiry, the approval, the action version that would run now, the halt switch, the requesting credential’s authority, current policy and dependencies. Every refusal has one shape: 409 with code REPLAY_REFUSED, the reason in details.reason (replay_unsupported, not_unknown, replay_window_passed, credential_unavailable, allowance_released, write_in_flight, or the dispatch control that failed, such as policy_denies or preview_expired) and the effect’s current outcome in details.outcome. A refusal is recorded in the effect’s evidence, sends nothing and changes nothing else. An admitted replay that fails (never sent, or refused by the provider) describes that attempt, not the original write: the effect stays unknown with its allowance held. Only the provider’s own record of the operation in a failed state settles it failed. It never creates a second effect.
/api/v2/actions/effects/{id}/replayAuthorizationBearer token (Anlyon API key) · headerrequiredWorkspace API key sent as Authorization: Bearer <key>.
better-auth.session_tokenAPI key · cookierequiredBrowser session used by dashboard-only operations.
idstringrequiredPublic effect identifier.
X-Request-IdstringOptional caller correlation ID. Unsafe or oversized values are replaced.
Effect with evidence returned.
successbooleanrequiredtruedataEffectDetailrequiredShow propertiesHide properties
idstringrequiredinvocationIdstringrequiredoperationKeystringrequiredenvironmentIdstring<uuid>requiredactionobjectrequiredShow propertiesHide properties
namestringrequiredversionIdstringrequiredadapterobjectrequiredShow propertiesHide properties
typestringrequiredversionstringrequiredstagestringrequiredawaiting_approvalreadydispatchingreconcilingsettledrejectedoutcomestringrequirednot_dispatchedpendingsucceededfailedunknownpartialEffectstringrequiredA failure is not proof of zero impact.
nonepossibleconfirmedgradestringrequiredThe receipt grade, derived by the database from the stage, outcome, outcome source and rejection reason. confirmed: the outcome is succeeded and it was read from the provider's own record of the operation, or a declared read-back matched. acknowledged: the provider accepted the request with a 2xx and no read-back has matched. An operator's manual succeeded also grades here and keeps verification: manual. unknown: no usable response, so reconciliation owns the effect and its allowance stays held. failed: the provider rejected the request, or the request provably never left Anlyon. refused: Anlyon refused at dispatch, for example on a digest mismatch, an exhausted or unbounded limit, an expired preview or a changed action version. denied: the approval was denied. pending: no receipt yet.
confirmedacknowledgedunknownfailedrefuseddeniedpendingverificationstringrequiredprovidermanualunverifiednot_dispatchedproviderReferencestring | nullrequiredtargetobjectrequiredimpactImpactQuantity[]requiredShow propertiesHide properties
ImpactQuantitydimensionstringrequiredmoney, resource_mutations, or a workspace-declared unit such as emails.
currencystringPresent for money.
amountintegerrequiredInteger minor units for money. A count for every other dimension.
boundstringrequiredexactupper_boundpreviewIdstring | nullrequiredapprovalIdstring | nullrequiredbindingDigeststring | nullrequireddependsOnobject[]requiredShow propertiesHide properties
objecteffectIdstringrequiredoutcomestringrequiredcompensatesstring | nullrequiredrejectionReasonstring | nullrequiredunresolvedExposurebooleanrequiredreconciliationobjectrequiredShow propertiesHide properties
attemptsintegerrequirednextAtstring<date-time> | nullrequiredexhaustedbooleanrequiredcreatedAtstring<date-time>requiredfirstDispatchedAtstring<date-time> | nullrequiredoutcomeAtstring<date-time> | nullrequiredupdatedAtstring<date-time>requiredrequestobjectrequiredcapabilitiesobjectrequiredattemptsobject[]requiredShow propertiesHide properties
objectnumberintegerrequiredkindstringrequireddispatchreplayreconcilestatusstringrequiredstartedcompletedabandonedobservedOutcomestring | nullrequirederrorstring | nullrequiredstartedAtstring<date-time>requiredfinishedAtstring<date-time> | nullrequiredevidenceobject[]requiredShow propertiesHide properties
objectidstringrequiredsourcestringrequiredpreviewprovider_responseprovider_lookupsystemoperator_notemanual_resolutionobservedAtstring<date-time>requiredimpliedOutcomestring | nullrequiredproviderIdsobjectrequiredsummarystringrequireddetailsobjectrequiredactorobjectrequiredShow propertiesHide properties
typestringrequiredidstring | nullrequiredrecordedAtstring<date-time>requiredreservationsobject[]requiredShow propertiesHide properties
objectlimitIdstringrequirednamestringrequireddimensionstringrequiredcurrencystring | nullrequiredperiodstringrequiredThe accounting period this reservation belongs to for its whole life.
amountintegerrequiredstatestringrequiredreservedsettledreleasedexposurestring | nullrequireddispatchingpendingunknownpartialnullsettledintegerrequiredreleasedintegerrequiredcreatedAtstring<date-time>requiredfinishedAtstring<date-time> | nullrequiredpreviewActionPreview | nullrequiredShow propertiesHide properties
idstringrequiredactionobjectrequiredShow propertiesHide properties
idstringrequirednamestringrequiredversionIdstringrequiredadapterobjectrequiredShow propertiesHide properties
typestringrequiredversionstringrequiredenvironmentobjectrequiredShow propertiesHide properties
idstringrequirednamestringrequiredkindstringrequiredtargetobjectrequiredrequestobjectrequiredThe exact normalized request that will be dispatched.
impactImpactQuantity[]requiredblocksPreviewBlock[]requiredShow propertiesHide properties
PreviewBlocktypestringrequiredfieldstext_diffimpactlimitationstitlestringrequiredfieldsobject[]Show propertiesHide properties
objectlabelstringrequiredvaluestringrequiredpathstringbeforestringafterstringtruncatedbooleanquantitiesImpactQuantity[]itemsobject[]Show propertiesHide properties
objectkindstringrequiredguaranteefreshnessunsupportedirreversibletextstringrequiredpreconditionsobjectrequiredMaterial preconditions; part of the binding.
capabilitiesobjectrequiredThe adapter's declared guarantees.
allowancesobject[]requiredApplicable impact limits at preview time. Dispatch rechecks.
evidenceObservedAtstring<date-time>requiredexpiresAtstring<date-time>requiredexpiredbooleanrequiredrequestDigeststringrequiredbindingDigeststringrequiredSHA-256 over the canonical request, target, versions, preconditions, scope and expiry. What an approval agrees to.
supersedesstring | nullrequiredeffectIdstring | nullrequiredThe effect executing this preview, once one is admitted.
createdAtstring<date-time>requirednullUnauthorized - Invalid or missing API key
successbooleanrequiredrequestIdstringrequiredCorrelation ID matching the X-Request-Id response header.
errorobjectrequiredShow propertiesHide properties
codestringmessagestringdetailsobjectAuthenticated credential lacks the required scope or workspace access.
successbooleanrequiredrequestIdstringrequiredCorrelation ID matching the X-Request-Id response header.
errorobjectrequiredShow propertiesHide properties
codestringmessagestringdetailsobjectNot Found - Resource does not exist
successbooleanrequiredrequestIdstringrequiredCorrelation ID matching the X-Request-Id response header.
errorobjectrequiredShow propertiesHide properties
codestringmessagestringdetailsobjectThe request conflicts with current resource state or a concurrent decision.
successbooleanrequiredrequestIdstringrequiredCorrelation ID matching the X-Request-Id response header.
errorobjectrequiredShow propertiesHide properties
codestringmessagestringdetailsobjectToo Many Requests - Rate limit exceeded
successbooleanrequiredrequestIdstringrequiredCorrelation ID matching the X-Request-Id response header.
errorobjectrequiredShow propertiesHide properties
codestringmessagestringdetailsobject
