Sporadic ClaimsChallengeRequiredException using client secret authentication in newer versions of SDK
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 25/100
- Issue type
- Bug
- Clarity
- Needs clarification
- Activity status
- Stale
- Tech stack
- azure, java, kotlin, spring-boot
- Domain
- api, authentication, backend
Research direction
Start with the GraphServiceClient bean using ClientSecretCredentialBuilder and the applicationsWithAppId health check. Compare authentication behavior between SDK versions 6.12.0 and 6.18.0, focusing on why all instances using the same service principal receive ClaimsChallengeRequiredException together. Done means the sporadic exception is reproduced or its regression is identified and a verified fix is available.
Written by the indexing model from the issue text.
Description
Describe the bug
After upgrading the library to version 6.18.0 (or any version other than 6.12.0), we sporadically encounter ClaimsChallengeRequiredExceptions.
When this issue arises, the com.microsoft.graph.serviceclient.GraphServiceClient consistently returns ClaimsChallengeRequiredException, and this can persist for several hours before the problem resolves itself. The issue may or may not recur the following day, with occurrences ranging from twice a day to once every four days.
Sample response from the Graph API:
{
"error":{
"code":"InvalidAuthenticationToken",
"message":"Exception of type 'Microsoft.Graph.AGS.Contracts.ClaimsChallengeRequiredException' was thrown.",
"innerError": {"date":"2024-10-25T12:28:03", "request-id":"f9d0585e-13fc-45d5-8e04-052b9768bcc0", "client-request-id":"83e18f5d-2547-4cac-8aa1-3b11f3a8148d"}
}
}
Downgrading to 6.12.0 will cause the problem to not appea, while other applications running 6.18.0 for the same service principal still get the error.
Expected behavior
We do not expect to get sporadic ClaimsChallengeRequiredException's
How to reproduce
In our spring boot kotlin application we have defined a spring bean for a GraphServiceClient like this
@Bean
fun graphServiceClient(): GraphServiceClient {
return GraphServiceClient(
ClientSecretCredentialBuilder()
.clientId(azureProperties.clientId)
.clientSecret(azureProperties.clientSecret)
.tenantId(azureProperties.tenantId)
.build(),
SCOPES,
)
}
We also have a health check that pings
graphServiceClient.applicationsWithAppId(azureProperties.clientId).get()
to verify that the client works.
With this we can expect the exception to be thrown at any moment / random.
The following image displays occurances of this exception the last 14 days.
SDK Version
6.18.0
Latest version known to work for scenario above?
6.12.0
Known Workarounds
We have currently two workarounds:
- Restarting the application, which reinitializes the GraphServiceClient bean
or - Wait an hour or two for the problem to disappear
Other information
When running multiple instances of the same application, using the same service principal, all instances will be affected at the same time, when this issue occurs.
- Dominant language
- Java
- Stars
- 444
- Forks
- 154
- Avg merge
- 18h 28m
- Merged PRs (30d)
- 4
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.
More from microsoftgraph/msgraph-sdk-java
-
status:waiting-for-triage type:bug
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
microsoftgraph/msgraph-sdk-java#2610 ·
-
status:waiting-for-triage type:bug
Difficulty 3/5 1-2 days Newbie friendliness 55/100
microsoftgraph/msgraph-sdk-java#2656 ·
-
status:waiting-for-triage type:bug
Difficulty 4/5 3-5 days Newbie friendliness 38/100
microsoftgraph/msgraph-sdk-java#2654 ·
-
status:waiting-for-triage
Difficulty 4/5 3-5 days Newbie friendliness 35/100
microsoftgraph/msgraph-sdk-java#2639 ·
-
status:waiting-for-triage type:bug
Difficulty 3/5 1-2 days Newbie friendliness 35/100
microsoftgraph/msgraph-sdk-java#2589 · 1 comment ·
All issues in microsoftgraph/msgraph-sdk-java
Similar issues
-
certification
Difficulty 1/5 Under an hour Newbie friendliness 80/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
[BUG] ECR GetAuthorizationToken returns a proxyEndpoint for the default region, not the request's Openbug ecr
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
Needs: Triage Type: Feature request
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
AntennaPod/AntennaPod#8794 ·
-
agentic-workflows
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
github/copilot-sdk#2760 ·