• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

temporalio / sdk-java
68%
master: 75%

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Repo Added 09 Aug 2022 04:50AM UTC
Files 920
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH main
branch: main
CHANGE BRANCH
x
Reset
  • main
  • fix-temporal-sdk-java-main-code-coverage
  • jacoco
  • master

17 Aug 2026 10:04PM UTC coverage: 68.024% (-0.02%) from 68.042%
#359

push

github

web-flow
Report non-retryable PayloadValidationError as BAD_REQUEST (#3009)

## What changed

A data converter can now signal that a Nexus operation's input is invalid by throwing a non-retryable `ApplicationFailure` of type `PayloadValidationError` while deserializing the input. `PayloadSerializer` translates such a failure into a `BAD_REQUEST` `HandlerException` with the message `invalid operation input`, retaining the original failure as its cause.

Previously any `ApplicationFailure` from the data converter propagated and was turned into an `INTERNAL` handler error by `NexusTaskHandlerImpl`, which callers retry — so a caller sending invalid input was retried until timeout instead of failing fast.

## Unchanged

- `ApplicationFailure` of any other type → propagated as before (`INTERNAL`)
- A **retryable** `PayloadValidationError` → propagated as before (`INTERNAL`); non-retryable is required
- `HandlerException` from the converter → passed through untouched
- `InvalidProtocolBufferException` / `DataConverterException` → `BAD_REQUEST` as before
- `serialize()` is untouched — `BAD_REQUEST` would be wrong for a result-encoding failure

## Tests

- `PayloadSerializerTest`: positive case asserting `BAD_REQUEST`, non-retryable, the wrapper message and the preserved cause; negative cases for a different error type and for a retryable `PayloadValidationError`.
- `OperationInputDeserializationErrorPropagationTest`: end-to-end through the test server, including a retryable case that proves the non-retryable guard by being retried.

## Cross-SDK

Part of a coordinated change; equivalent PRs exist for Go, TypeScript, Python and .NET. The wrapper message wording is aligned across SDKs, adapted to each SDK's message style.

7405 of 12974 branches covered (57.08%)

Branch coverage included in aggregate %.

5 of 5 new or added lines in 1 file covered. (100.0%)

17 existing lines in 6 files now uncovered.

30510 of 42764 relevant lines covered (71.35%)

0.71 hits per line

Relevant lines Covered
Build:
Build:
42764 RELEVANT LINES 30510 COVERED LINES
0.71 HITS PER LINE
Source Files on main
  • Tree
  • List 920
  • Changed 11
  • Source Changed 1
  • Coverage Changed 11
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
#359 main Report non-retryable PayloadValidationError as BAD_REQUEST (#3009) ## What changed A data converter can now signal that a Nexus operation's input is invalid by throwing a non-retryable `ApplicationFailure` of type `PayloadValidationError` while ... push 17 Aug 2026 10:23PM UTC web-flow github
68.02
#358 main 💥 Report Nexus input deserialization failures as non-retryable BAD_REQUEST (#3002) io.nexusrpc:nexus-sdk 0.6.0-alpha no longer wraps serializer errors in a generic RuntimeException (nexus-rpc/sdk-java#47), so PayloadSerializer is now the place th... push 13 Aug 2026 11:34PM UTC web-flow github
68.04
#357 main Add test verifying worker command polls omit versioning metadata (#3004) * Add test verifying worker command polls omit versioning metadata Add a dedicated test that starts a worker with deployment options and verifies via gRPC interceptor that ... push 13 Aug 2026 07:52PM UTC web-flow github
68.03
#356 main 💥 Fix unbounded timeout failure chain in local activity (#3006) Fix unbounded timeout failure chain push 13 Aug 2026 05:18PM UTC web-flow github
68.02
#355 main Add @TemporalOperation annotation for Nexus operations (#2928) Add Temporal Operation push 12 Aug 2026 11:50PM UTC web-flow github
67.98
#354 main Upgrade temporal-api to v1.63.5 (#3003) push 12 Aug 2026 09:35PM UTC web-flow github
67.94
#353 main Release v1.38.0 (#2997) push 10 Aug 2026 11:15PM UTC web-flow github
67.94
#352 main Document server-default schedule catchup window (#2950) push 10 Aug 2026 04:58PM UTC web-flow github
67.82
#351 main Add dev server downloader & runner to testing package (#2982) push 05 Aug 2026 12:15AM UTC web-flow github
67.78
#350 main Remove experimental markers from user metadata fields (#2958) StaticSummary, StaticDetails, CurrentDetails, Activity Summary, and Timer Summary are stable and shipping. Remove @Experimental annotations to reflect GA status. Co-authored-by: Claud... push 04 Aug 2026 06:37PM UTC web-flow github
68.24
See All Builds (359)
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc