Skip to content

Qualify typed Nexus failures through actual PHP and Python workflows - #403

Merged
rmcdaniel merged 1 commit into
mainfrom
qualify-nexus-terminal-workflows
Oct 11, 2026
Merged

rmcdaniel merged 1 commit into
mainfrom
qualify-nexus-terminal-workflows

Conversation

@rmcdaniel

Copy link
Copy Markdown
Member

Actual typed failure delivery

Part of durable-workflow/workflow#753, durable-workflow/sdk-php#116 and durable-workflow/sdk-python#116, following #394's published successful caller execution.

Run actual PHP/Python caller workflows against actual PHP/Python SDK service workers that raise a named application exception. Exercise all four language directions in both same and cross namespaces. Workflow code catches the SDK's typed service exception at the original call boundary and returns its original identity, type and message.

Require the linked service's real failed history, original caller/run/call/sequence, one admission and one terminal delivery, exact service error type/message and a durable failed timestamp in the API. Preserve the existing successful execution checks and separate admission-only scope. No independent HTTP failure probe qualifies these cases.

The frozen published tuple stays Server 2.5.22 / Workflow 2.5.11 (sha256:5e0d2dc34f6199f4b01b77874e046c173d9697499f647cc0e9ca543ea89bee7c), PHP SDK 2.3.0-rc.1, Python SDK 2.6.0rc2, CLI 2.2.3 and Waterline 2.9.1.

Five local evidence guard tests and PHP/Python syntax checks pass. Draft until actual hosted execution and normal source checks pass. Cancellation, cold recovery, backend interruption, external payloads, deadline retention and actual Waterline inspection remain required. No full Nexus or stable SDK promotion claim. Native/shared Rust rewrite work remains with #325's owner.

@rmcdaniel rmcdaniel left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed exact head 7028c90cd538c5d09fd95b29ecb70c98fbf72449 against bd6dc932159a34cb5fe2fe8e8401e4fae4a44733.

This seven-file change adds real named service failures to the published SDK workers and executes completion-waiting caller workflows in all four PHP/Python language directions and same/cross namespaces. Calls remain leased workflow commands. Application code catches the SDK's typed error at that boundary, so the caller completing with its handled error is expected. The linked service must actually fail once, and type/message/call/run/sequence and durable API terminal state must agree. Independent HTTP handler probes and admissions do not satisfy the new assertion.

The successful execution checks remain intact, strengthened to require an OK API read, exactly one terminal event of the expected type and proper history ordering. All 12 local guards/retained successful observations and syntax checks pass. Published run 38151068106 passes all eight successful and eight handled failure cases. Its official artifact 11706795904 verifies SHA256 a860c2e05250cc8c1f7f01c95e50b4e63eb346b5c0b60bd2266aa952f347fa6c. Normal exact-head source qualification must pass before merge.

No production implementation, native/shared rewrite specification or stable SDK version is changed. Remaining parent acceptance includes cancellation, restart/interruption, external payloads, deadline retention and Waterline API/browser inspection.

@rmcdaniel
rmcdaniel marked this pull request as ready for review October 11, 2026 15:33
@rmcdaniel
rmcdaniel merged commit 9108d76 into main Oct 11, 2026
8 checks passed
@rmcdaniel
rmcdaniel deleted the qualify-nexus-terminal-workflows branch October 11, 2026 15:33
@rmcdaniel

Copy link
Copy Markdown
Member Author

Published typed service failure qualification delivered

Server #403 merged as 9108d766a2d230b420c8190bb417590e3f61a7c3, with the same reviewed tree as 7028c90cd538c5d09fd95b29ecb70c98fbf72449.

All source checks pass, including published execution 38151068106. Main published execution 38151756740 and normal feature suite 38151756753 also pass.

All eight real PHP/Python caller/service direction and namespace cases preserve NexusFixtureFailure and its message. The caller workflow catches its SDK's typed exception at the original durable operation, records one ServiceCallFailed, and completes with the handled error. All eight earlier successful cases remain passing.

Qualification covers handled typed service failures. Workflow #753 remains open for cancellation, cold recovery, backend interruption, external payloads, execution deadline enforcement and actual operator visibility. The separate full Nexus suite remains non-passing.

Merged remote and local branches are removed. The clean worktree now belongs to active #404. No local application stack or paid resource was retained.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants