tryGetDestination() fails with "Failed to get destination" for NoAuthentication+IAS destination in subscriber tenant context
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 41
- Forks
- 33
- Avg merge
- 18h 34m
- Merged PRs (30d)
- 19
Description
Describe the Bug
When calling DestinationAccessor.getLoader().tryGetDestination("OneSimAPI_Destination") in a subscriber tenant context, the SDK fails with "Failed to get destination." for a destination configured with
Authentication=NoAuthentication and IAS-based M2M properties (cloudsdk.ias-dependency-name, tokenService.body.url).
The same destination is successfully returned by DestinationService.getAllDestinationProperties() (metadata-only call). The failure happens only during the full resolution via tryGetDestination.
This works correctly for another tenant on the same landscape with the same destination configuration (same auth type, same dependency name, different tokenService.body.url).
Steps to Reproduce
- Configure a BTP destination in a subscriber subaccount with:
- Authentication: NoAuthentication
- cloudsdk.ias-dependency-name: sim-supplier-search-api
- tokenService.body.url: https://.accounts.ondemand.com
- Call DestinationAccessor.getLoader().tryGetDestination("OneSimAPI_Destination") in the context of the subscriber tenant
- Observe failure with "Failed to get destination."
Expected Behavior
tryGetDestination() should successfully resolve the destination. Since the auth type is NoAuthentication, the SDK should not attempt user token exchange. The destination should be returned with its properties so
our code can handle the IAS token fetch separately using the cloudsdk.ias-dependency-name and tokenService.body.url properties.
Screenshots
No response
Used Versions
- SAP Cloud SDK: 5.20.0
- Java: 21
- Spring Boot: 3.x
- Landscape: CF EU30 (prod)
Code Examples
// Our call in DestinationCallProcessor.java
private Try tryGetDestination(String destinationName) {
return DestinationAccessor.getLoader().tryGetDestination(destinationName);
}
Destination configuration (sensitive values removed):
{
"Name": "OneSimAPI_Destination",
"Type": "HTTP",
"Authentication": "NoAuthentication",
"ProxyType": "Internet",
"URL": "https://.prod-eu30.supplier-info-management.procurement.cloud.sap/api/ambassador-srv-api/v1",
"cloudsdk.ias-dependency-name": "sim-supplier-search-api",
"tokenService.body.url": "https://.accounts.ondemand.com"
}
Stack Trace
No response
Log File
Log file
...Affected Development Phase
Production
Impact
Blocked
Timeline
No response
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 at DestinationAccessor.getLoader().tryGetDestination and compare its resolution path with DestinationService.getAllDestinationProperties(). Reproduce the subscriber-tenant case using the stated NoAuthentication and IAS properties, then trace why full resolution fails while metadata succeeds. Done means tryGetDestination returns the destination without user token exchange and preserves the IAS-related properties.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, spring-boot
- Domain
- backend, cloud
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100