dapr / dapr/java-sdk

Calling sdk's invokeMethod raise DaprException: UNKNOWN: HTTP status code: 400

Open
#1,655 0 comments 0 reactions 0 assignees View on GitHub
kind/bug
Dominant language
Java
Stars
300
Forks
230
Avg merge
5d 1h
Merged PRs (30d)
5

Description

HI
I recently upgrade dapr from 1.15.12 to 1.16.8, but encounter the issue when do service invocation in Java like:
```sh
Map headers = buildHeaders();
log.info("Invoking search service global search. Headers: {}", headers);
HttpExtension httpExtension = new HttpExtension(io.dapr.client.DaprHttp.HttpMethods.POST, null, headers);
log.info("Invoking search service global search. Request: {}", request);
log.info("Invoking search service global search. HttpExtension: {}", httpExtension);
log.info("Invoking search service global search. Method: {}", trimLeadingSlash(apiPrefix) + "/global");
JsonNode json = daprClient.invokeMethod(
searchServiceAppId,
trimLeadingSlash(apiPrefix) + "/global",
request,
httpExtension,
JsonNode.class
).block(Duration.ofMillis(invokeTimeoutMs));
```
the caller's log print out error:
```sh
2026-02-13 16:49:22.531
io.dapr.exceptions.DaprException: UNKNOWN: HTTP status code: 400
2026-02-13 16:49:22.531
2026-02-13 16:49:22.531
2026-02-13T08:49:22.500Z ERROR 1 --- [user-service] [nio-8080-exec-4] c.t.u.client.DaprDeviceServiceClient : Error creating device for operator jiaming-operator via Dapr: UNKNOWN: HTTP status code: 400
```
the callee has no log, I have no idea how and why the issue happen after the dapr upgrade(the code works before) and other sdk like python works as intended. **I test the code in local env successfully, but failed with the error in k8s**. Any idear for that, appreciated.

## Expected Behavior
Java sdk's service invocation works well as 1.15.12

## Actual Behavior

2026-02-13 16:49:22.531
io.dapr.exceptions.DaprException: UNKNOWN: HTTP status code: 400
2026-02-13 16:49:22.531
2026-02-13 16:49:22.531
2026-02-13T08:49:22.500Z ERROR 1 --- [user-service] [nio-8080-exec-4] c.t.u.client.DaprDeviceServiceClient : Error creating device for operator jiaming-operator via Dapr: UNKNOWN: HTTP status code: 400

## Steps to Reproduce the Problem
- upgrade dapr to 1.16.8
- re-deploy service
- call service API with java sdk (1.16.1) in application

## Release Note

Contributor guide

Open the contributing guide

Research direction

Start from the Java application's daprClient.invokeMethod call and compare behavior between Dapr 1.15.12 and 1.16.8 with Java SDK 1.16.1. Reproduce the request in Kubernetes, capturing the full 400 response and sidecar logs, then compare it with the successful local and Python calls. Done means identifying the upgrade-related cause and restoring service invocation.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, kubernetes
Domain
api, backend, devops
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.