Skip to content

docs: clarify duration format for Zeebe command binding#5220

Open
nelson-parente wants to merge 3 commits into
dapr:v1.19from
nelson-parente:docs/zeebe-command-duration-format
Open

docs: clarify duration format for Zeebe command binding#5220
nelson-parente wants to merge 3 commits into
dapr:v1.19from
nelson-parente:docs/zeebe-command-duration-format

Conversation

@nelson-parente

Copy link
Copy Markdown
Contributor

Summary

  • Adds a prominent alert note to the Output binding section stating that all duration fields require Go duration strings (e.g. "30s", "5m", "1h30m") — ISO-8601 durations like "PT1M" are not supported.
  • Updates the inline description for every affected duration field to explicitly state the required format: publish-message.timeToLive, create-instance.requestTimeout, activate-jobs.timeout, activate-jobs.requestTimeout, and fail-job.retryBackOff.

Motivation

Users sending ISO-8601 durations or other ambiguous strings to Zeebe command binding fields were receiving a confusing Invalid duration error with no indication of the expected format. The code PR (dapr/components-contrib#4412) improves the error message; this PR ensures the docs are unambiguous so users can avoid the error entirely.

Code: dapr/components-contrib#4412
Relates to: dapr/components-contrib#4093

Target

Dapr 1.19

Test plan

  • Verify alert block renders correctly in the Dapr docs site
  • Confirm all five affected fields now document the Go duration string format

Signed-off-by: nelson.parente <nelson_parente@live.com.pt>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Updates the Zeebe command binding documentation to make duration formatting requirements explicit, helping users avoid confusing errors when providing ISO-8601 durations in binding payloads.

Changes:

  • Adds a prominent “Duration format” alert in the Output binding section clarifying that Go time.Duration strings are required and ISO-8601 durations aren’t supported.
  • Updates the parameter descriptions for all affected duration fields (timeToLive, requestTimeout, timeout, retryBackOff) to explicitly call out the required format.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +90 to +92
{{% alert title="Duration format" color="primary" %}}
All duration fields in Zeebe command binding operations must be specified as Go duration strings (e.g. `"30s"`, `"5m"`, `"1h30m"`). ISO-8601 durations (e.g. `"PT1M"`) are **not** supported and will result in an `Invalid duration` error.
{{% /alert %}}
- `withResult` - (optional, default: false) if set to true, the process will be instantiated and executed synchronously
- `requestTimeout` - (optional, only used if withResult=true) timeout the request will be closed if the process is not completed before the
requestTimeout. If requestTimeout = 0, uses the generic requestTimeout configured in the gateway.
- `requestTimeout` - (optional, only used if withResult=true) timeout after which the request will be closed if the process is not completed; must be a Go duration string (e.g. `"30s"`, `"5m"`, `"1h30m"`). If requestTimeout = 0, uses the generic requestTimeout configured in the gateway.
scope of the job will be returned
- `requestTimeout` - (optional) the request will be completed when at least one job is activated or after the requestTimeout. If the requestTimeout = 0,
a default timeout is used. If the requestTimeout < 0, long polling is disabled and the request is completed immediately, even when no job is activated.
- `requestTimeout` - (optional) the request will be completed when at least one job is activated or after the requestTimeout; must be a Go duration string (e.g. `"30s"`, `"5m"`, `"1h30m"`). If the requestTimeout = 0, a default timeout is used. If the requestTimeout < 0, long polling is disabled and the request is completed immediately, even when no job is activated.
Comment on lines +655 to +657
- `errorMessage ` - (optional) a message describing why the job failed this is particularly useful if a job runs out of retries and an
incident is raised, as it this message can help explain why an incident was raised
- `retryBackOff` - (optional) the back-off timeout for the next retry
- `retryBackOff` - (optional) the back-off duration before the next retry attempt; must be a Go duration string (e.g. `"30s"`, `"5m"`, `"1h30m"`)
…s (Copilot review)

Signed-off-by: Nelson Parente <nelson_parente@live.com.pt>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated 2 comments.

- `withResult` - (optional, default: false) if set to true, the process will be instantiated and executed synchronously
- `requestTimeout` - (optional, only used if withResult=true) timeout the request will be closed if the process is not completed before the
requestTimeout. If requestTimeout = 0, uses the generic requestTimeout configured in the gateway.
- `requestTimeout` - (optional, only used if `withResult`=true) timeout after which the request will be closed if the process is not completed; must be a Go duration string (e.g. `"30s"`, `"5m"`, `"1h30m"`). If `requestTimeout` is `"0"`, uses the generic `requestTimeout` configured in the gateway.
Comment on lines 655 to 656
- `errorMessage` - (optional) a message describing why the job failed this is particularly useful if a job runs out of retries and an
incident is raised, as it this message can help explain why an incident was raised
…pilot review)

Signed-off-by: Nelson Parente <nelson_parente@live.com.pt>
@nelson-parente nelson-parente marked this pull request as ready for review June 19, 2026 09:36
@nelson-parente nelson-parente requested review from a team as code owners June 19, 2026 09:36
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