You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Plugin hook info records missing state/metadata fields at invocation, attempt, and change hooks #604
Java's plugin info records lack metadata/state fields the Python/JS SDKs expose. Live cross-SDK conformance evidence exists per gap.
GA scope update: payload surfaces (execution input/result, operation result) have been moved OUT of GA conformance scope — experimental, no longer asserted by the field-shape requirements (see aws/aws-durable-execution-conformance-tests#72). They remain listed at the end as post-GA parity items; the operation-result gap is still evidenced by the untouched behavioral requirement 10-14 (#581).
In-scope missing fields (verified against sdk/src/main/java/software/amazon/lambda/durable/plugin/)
InvocationInfo — missing operations and updatedOperations maps (JS exposes both on every invocation hook). InvocationEndInfo — missing the operations map AND executionStartTime (present on the start info but dropped from the end record — confirmed by live probe). UserFunctionStartInfo/UserFunctionEndInfo (attempt hooks) — missing the operation-level isReplay indicator (Python and JS carry it on attempt infos; Java only has the distinct isReplayingChildren). OperationChangeItemInfo — missing attempt and a replay indicator (JS/Python change items are full operation infos).
Secondary: UserFunctionEndInfo uses boolean succeeded where JS/Python use a SUCCEEDED/FAILED outcome enum.
Evidence
Field-shape requirements 10-19..10-23 (aws/aws-durable-execution-conformance-tests#72), canonical-dump handlers in #602 — live run 18/21: 10-19 (maps + end-side start time), 10-21 (isReplay presence), 10-22 (item attempt/replay) red; 10-20 and 10-23 green. Notably green: end-info isFirstInvocation (ahead of JS), OperationInfo.status (#597), attempt-end timestamps (ahead of JS), isReplayingChildren semantics.
Post-GA / experimental parity items (not currently asserted)
executionInput/executionResult on invocation infos; result on OperationInfo/OperationEndInfo/OperationChangeItemInfo (the OperationEndInfo result gap remains tracked by behavioral test 10-14 / Add plugin conformance case 10-14 (known SDK gap) #581)
Suggested fix
Add the operations/updated-operations maps + end-side executionStartTime to the invocation infos (DurableExecutor/ExecutionManager), isReplay to the user-function infos, and attempt+replay indicator to OperationChangeItemInfo (via PluginInfoConverter). Conformance 10-19/10-21/10-22 flip green with no test changes.
changed the title [-]Plugin hook info records missing payload and state fields at every hook level[/-][+]Plugin hook info records missing state/metadata fields at invocation, attempt, and change hooks[/+]on Aug 7, 2026
Activity
[-]Plugin hook info records missing payload and state fields at every hook level[/-][+]Plugin hook info records missing state/metadata fields at invocation, attempt, and change hooks[/+]fix(plugin): surface missing state fields on hook info records
fix(plugin): surface missing state fields on hook info records
fix(plugin): surface missing state fields on hook info records
fix(plugin): surface missing state fields on hook info records
fix(plugin): surface missing state fields on hook info records (#618)
fix(otel): set explicit span status OK on successful operation and at…
SilanHe commentedon Oct 27, 2026
Looks like we fixed this in #618