Repository navigation
WorkflowStub::make()->start() ignores workflows.v2.namespace while WorkflowControlPlane::start() applies it #617
Description
Activity
- addedauthority:githubGitHub is the authoritative lifecycle record for this workGitHub is the authoritative lifecycle record for this workkind:defectA public product behavior is incorrectA public product behavior is incorrectpriority:untriagedMaintainers have not assigned a priorityMaintainers have not assigned a prioritystatus:triageAwaiting maintainer classificationAwaiting maintainer classification
on Oct 6, 2026 - addedintake:approvedCurrent issue title and body revision is approved for authority intakeCurrent issue title and body revision is approved for authority intakepriority:P1High-priority product or release riskHigh-priority product or release riskstatus:in-progressApproved work is actively being implemented or validatedApproved work is actively being implemented or validatedand removedpriority:untriagedMaintainers have not assigned a priorityMaintainers have not assigned a prioritystatus:triageAwaiting maintainer classificationAwaiting maintainer classification
on Oct 6, 2026 Published Workflow 2.4.2 at
4fcb23622147dd2c1f92e461e927577092120bb8
passes the fresh installed namespace consumer: 15 cases / 223 assertions. This
includes actual PHP task execution, scoped visibility, PHP schedule starts and
unchanged records after rejected conflicting starts.Server #304 is merged at
ce14b0c20ba1c9486138a0baf830b567e5ee0e36. All final
PR and merged-main gates pass. Immutable Server 2.5.2 is published from that
source. Its protected release checks
pass both architectures/registries, bare-image first-run readiness, source-free
Compose, catalog convergence and anonymous Helm 0.1.139 installation. Index
digest:sha256:e5b9043da1c37f3783b6aa91b1638d1ca688539d14d6db2c0e4387731cff88a2.
The completed remote branch is deleted and verified absent.That exact image passes all 14 published namespace scenarios, no findings, and
all 12 published PHP/Python/Rust lifecycle cells.
All 15 schedule qualification scenarios pass with no findings, including
cadence, restart recovery, official CLI and SDK operations, PHP/Python
cross-language execution and verified published installs. Site
durable-workflow/durable-workflow.github.io#162 is merged at
ec3555c8be6c999824ddae6affb26662463a0af0, preserving its qualified tree.
The local build, all PR/main checks and Pages publication pass. Live installation
pins show Workflow 2.4.2 / Server 2.5.2. The published
PHP namespace rules
and schedule propagation rules
are verified. Its completed remote branch is deleted and verified absent.Sample App #141 is merged and delivered. Both application and microservice locks
use 2.4.2. PHP, Compose, polyglot and published-image checks passed, including
anonymous artifact qualification on amd64 and arm64 in
run 37486553433.All acceptance criteria and affected published-consumer follow-through are
complete. The portable protocol and SDK packages are unchanged. Upgrade embedded
applications to Workflow 2.4.2 or use Server 2.5.2. Existing records are not
rewritten by the fix.- addedstatus:doneDerived from the authoritative closed issue stateDerived from the authoritative closed issue stateand removedstatus:in-progressApproved work is actively being implemented or validatedApproved work is actively being implemented or validated
on Oct 6, 2026
Owning public component
Workflow engine
Exact version or source identity
2.4.0.
Minimal reproduction and evidence
Observed with
durable-workflow/workflow2.4.0 in a Laravel application using PostgreSQL and the database queue driver.The package exposes
DW_V2_NAMESPACE, mapped toworkflows.v2.namespace.Run the following after bootstrapping Laravel with the Workflow service provider registered:
The equivalent probe was executed with an existing trivial application workflow. The observed values were:
{ "configured_namespace": "default", "stub_instance_namespace": null, "stub_run_namespace": null, "control_run_namespace": "default" }The transaction was rolled back. A subsequent query confirmed that neither probe instance nor its runs remained in the database.
Source inspection also shows:
src/config/workflows.phpdeclares the namespace setting.DefaultWorkflowControlPlane::resolveNamespace()reads it.WorkflowStub::make()->start()path does not apply it when creating the instance and run.Observed behavior
Setting
workflows.v2.namespacedoes not produce consistent results across the two PHP start APIs:WorkflowStub::make()->start()creates an instance and run withnamespace = NULL.WorkflowControlPlane::start()creates a run with the configured namespace.There is a related operational consequence in our application: schedules use
namespace = "default", while runs started through the stub path havenamespace = NULL.Filtering runs by the schedule's namespace therefore returns no matching executions, even though those executions exist and complete successfully.
This was initially visible in a read-only diagnostic tool. No execution failure was demonstrated; the confirmed problem concerns namespace assignment and namespace-filtered visibility.
Expected behavior and acceptance criteria
A configured namespace should have consistent semantics across supported PHP start APIs.
Acceptance criteria:
workflows.v2.namespace = "default", a new instance and run created throughWorkflowStub::make()->start()receive that namespace.If namespace configuration is intentionally unsupported by WorkflowStub, document that limitation explicitly and provide a supported way to start a namespaced PHP workflow through this API.
Existing records should not be rewritten implicitly as part of the fix.
Dependencies and related public issues
Affected package:
Verified application environment:
Relevant package components:
Relevant configuration:
The discrepancy was reproduced directly through PHP APIs. Waterline and MCP are not required to reproduce it.
No related public issue has been confirmed for this namespace discrepancy.
Public intake checks