Elsa 3.6.3 — Release Notes
Compare: 3.6.2...3.6.3
🌟 Highlights
- Azure Service Bus startup stability: Added an opt-in stable application instance name provider for clustered hosts so Azure Service Bus change-token subscriptions can be reused across restarts instead of leaking one subscription per random instance name. This addresses the startup/crash-loop failure mode reported in #7732 and #7736. (#7734)
- Long configured instance names: Configured stable application instance names that exceed transport entity limits are now shortened deterministically instead of failing startup, preserving stable identity for values such as Kubernetes pod names. (cb295d0b49)
- Blank Cron expressions restored: Blank or whitespace Cron values are treated as disabled/no trigger payloads instead of blocking workflow publishing, while invalid nonblank Cron expressions remain invalid. (#7739)
- Publish validation responses: Workflow publish endpoints now honor failed publish results and surface validation warnings/errors in API responses instead of reporting successful publication when validation failed. (#7740)
⚠️ Breaking changes / upgrade notes
- No intentional breaking changes are included in this patch release.
- Hosts using Azure Service Bus in clustered or frequently restarted environments should configure a stable application instance name for each process/pod. Long configured values are supported and shortened deterministically.
🔧 Improvements
- Clustering: Added an opt-in stable application instance name provider and related configuration for hosts that need deterministic per-instance transport identities. (28d6786042)
- Clustering: Deterministically shortens long configured application instance names while keeping the same configured value mapped to the same shortened value across restarts. (366ed74bd1, cb295d0b49)
- Workflow publishing: Publish-on-validation-error behavior is now opt-in for 3.6.x/3.7.x, and publish/bulk-publish endpoints honor the actual publish result. (0200a3bd19, 2e0f7f8add)
🐛 Fixes
- Scheduling — Cron: Empty Cron expressions no longer produce trigger payloads or fail validation, restoring support for unconfigured/disabled Cron triggers during workflow publishing. (42cbb5632a)
- Scheduling — Cron:
Cron.ExecuteAsyncnow safely treats blank expressions as disabled when a Cron activity runs inside a workflow instead of throwing aCronFormatException. (3dba9e7293) - Workflow API: Publish, bulk-publish, and workflow definition save responses now include validation warnings/errors so clients can show actionable feedback. (abccc89c73)
🧪 Tests
- Added coverage for configured application instance names, blank Cron trigger indexing/validation, blank Cron execution, and publish/import API validation behavior. (28d6786042, 42cbb5632a, 3dba9e7293, 0200a3bd19)
🔁 CI / Build
- Updated the package workflow base version to
3.6.3. (e8cc1d3c50) - Skipped component tests in the package workflow to unblock the 3.6.3 package pipeline while preserving unit/integration coverage. (7eac7de695)
📦 Full changelog (short)
- Add opt-in stable application instance name provider (28d6786042)
- Allow publishing workflows with a blank Cron expression (42cbb5632a)
- Guard
Cron.ExecuteAsyncagainst a blank expression (3dba9e7293) - Make publish-on-validation-error failure opt-in for 3.6.x/3.7.x (0200a3bd19)
- Honor publish result in Publish/BulkPublish endpoints (2e0f7f8add)
- Surface publish validation warnings on API responses (abccc89c73)
- Merge blank/disabled Cron trigger publishing fix (#7739)
- Address Greptile instance name feedback (366ed74bd1)
- Merge stable application instance name fix (#7734)
- Update
base_versioninpackages.ymlto3.6.3(e8cc1d3c50) - Merge opt-in publish validation behavior fix (#7740)
- Shorten configured application instance names (cb295d0b49)
- Skip component tests in GitHub Actions (7eac7de695)