temporalio / temporalio/sdk-java
Marker Commands being sent with empty names in the wild
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 433
- Forks
- 249
- Avg merge
- 5d 6h
- Merged PRs (30d)
- 26
Description
Expected Behavior
Marker commands should never be sent to server with an empty marker name.
Actual Behavior
That happened
Steps to Reproduce the Problem
Unclear. Some user workflows were seen encountering this error on workflow completion:
BadRecordMarkerAttributes: MarkerName is not set on RecordMarkerCommand.
From what I could tell looking at the code briefly, the only way it seemed like this might happen is if the marker command was constructed while replaying was true, and then it later became false and sent off the command.
Specifications
This was definitely Java SDK, which we determined by seeing the stack trace query. Not clear which version. Java needs to do https://github.com/temporalio/sdk-java/issues/1838
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing Java SDK RecordMarkerCommand construction and the replaying-state transition described in the issue. Investigate how a command created during replay can later be sent with an empty marker name, then reproduce or add coverage for the workflow-completion failure. Done means marker commands cannot reach the server without a marker name.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- backend, distributed-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100