Error with Cesium World Terrain + Bing Maps Aerial

When I try to add “Cesium World Terrain + Bing Maps Aerial”, I always get the error:

Received an error from the Bing Maps imagery metadata service: Your request could not be completed because there was a problem with the service.

I am very confused, could you please help me?

The output log is as follows:
LogSlate: Window ‘Select a Cesium ion Token’ being destroyed
LogEditor: Attempting to add actor of class ‘Cesium3DTileset’ to level at 0.00,0.00,0.00
LogCesium: Loading tileset for asset ID 0
LogCesium: Loading tileset for asset ID 0 done
LogCesium: Loading tileset for asset ID 1
LogCesium: Loading tileset for asset ID 1 done
LogHttp: Warning: 000007CA74820500: request has been successfully processed. URL: https://dev.virtualearth.net/REST/v1/Imagery/Metadata/Aerial?incl=ImageryProviders&key=AmXdbd8UeUJtaRSn7yVwyXgQlBBUqliLbHpgn2c76DfuHwAXfRrgS5qwfHU6Rhm8&uriScheme=https, HTTP code: 500, content length: 609, actual payload size: 609, elapsed: 0.26s
LogHttp: Warning: 000007CA74820500 Response Header Date: Thu, 09 May 2024 14:05:21 GMT
LogHttp: Warning: 000007CA74820500 Response Header Content-Type: application/json; charset=utf-8
LogHttp: Warning: 000007CA74820500 Response Header Content-Length: 609
LogHttp: Warning: 000007CA74820500 Response Header Connection: keep-alive
LogHttp: Warning: 000007CA74820500 Response Header Access-Control-Allow-Headers: Content-Type,X-FD-Features,X-FD-FLIGHT,PreferAnonymous
LogHttp: Warning: 000007CA74820500 Response Header Access-Control-Allow-Methods: POST, GET, OPTIONS
LogHttp: Warning: 000007CA74820500 Response Header Access-Control-Allow-Origin: *
LogHttp: Warning: 000007CA74820500 Response Header Alt-Svc: h3=“:443”; ma=86400
LogHttp: Warning: 000007CA74820500 Response Header Cache-Control: no-cache
LogHttp: Warning: 000007CA74820500 Response Header X-BM-FE-Elapsed: 1, 1
LogHttp: Warning: 000007CA74820500 Response Header X-BM-TraceID: 5acd860227639e887bdcdcf835e5b733
LogHttp: Warning: 000007CA74820500 Response Header X-BM-Srv: mapsplatform-frontend-7cb844f95f-52m78
LogHttp: Warning: 000007CA74820500 Response Header x-azure-ref: 20240509T140521Z-r1dfb5f8656r92jf8wua4mdpkg000000083g000000006m8d
LogHttp: Warning: 000007CA74820500 Response Header X-Cache: CONFIG_NOCACHE
LogCesium: Error: [2024-05-09 22:05:20.248] [error] [RasterOverlayCollection.cpp:127] Received an error from the Bing Maps imagery metadata service: Your request could not be completed because there was a problem with the service.

According to the error message, the request for the metadata service returned an error (code 500, which indicates a generic server-side error). However, when I load that same URL here, it loads just fine. You should try opening this URL in a web browser and see if you get an error there, too. If you do, hopefully the response will include details that help you understand the problem. My best guess is that something on your network is blocking the request, or that the Bing Maps service itself is blocked from your location.

https://dev.virtualearth.net/REST/v1/Imagery/Metadata/Aerial?incl=ImageryProviders&key=AmXdbd8UeUJtaRSn7yVwyXgQlBBUqliLbHpgn2c76DfuHwAXfRrgS5qwfHU6Rhm8&uriScheme=https

Yeah, I open this URL in Microsoft Edge, it displays as follows:
{
“authenticationResultCode”: “ValidCredentials”,
“brandLogoUri”: “https://dev.virtualearth.net/Branding/logo_powered_by.png”,
“copyright”: “Copyright © 2024 Microsoft and its suppliers. All rights reserved. This API cannot be accessed and the content and any results may not be used, reproduced or transmitted in any manner without express written permission from Microsoft Corporation.”,
“resourceSets”: [
{
“estimatedTotal”: 1,
“resources”: [
{
“__type”: “ImageryMetadata:http://schemas.microsoft.com/search/local/ws/rest/v1”,
“imageHeight”: 256,
“imageUrl”: “https://ecn.{subdomain}.tiles.virtualearth.net/tiles/a{quadkey}.jpeg?g=14461”,
“imageUrlSubdomains”: [
“t0”,
“t1”,
“t2”,
“t3”
],
“imageWidth”: 256,
“imageryProviders”: [
{
“attribution”: “© 2024 Microsoft Corporation”,
“coverageAreas”: [
{
“bbox”: [
-90,
-180,
90,
180
],
“zoomMax”: 21,
“zoomMin”: 1
}
]
},
{
“attribution”: “© 2024 Maxar”,
“coverageAreas”: [
{
“bbox”: [
-90,
-180,
90,
180
],
“zoomMax”: 21,
“zoomMin”: 13
}
]
},
{
“attribution”: “©CNES (2024) Distribution Airbus DS”,
“coverageAreas”: [
{
“bbox”: [
-90,
-180,
90,
180
],
“zoomMax”: 21,
“zoomMin”: 13
}
]
},
{
“attribution”: “© 2024 TMAP MOBILITY”,
“coverageAreas”: [
{
“bbox”: [
34.0135,
124.3834,
38.6701,
129.8908
],
“zoomMax”: 21,
“zoomMin”: 8
},
{
“bbox”: [
37.3354,
130.7187,
37.6059,
131.014
],
“zoomMax”: 21,
“zoomMin”: 8
}
]
},
{
“attribution”: “Earthstar Geographics SIO”,
“coverageAreas”: [
{
“bbox”: [
-90,
-180,
90,
180
],
“zoomMax”: 12,
“zoomMin”: 1
}
]
}
],
“vintageEnd”: null,
“vintageStart”: null,
“zoomMax”: 21,
“zoomMin”: 1
}
]
}
],
“statusCode”: 200,
“statusDescription”: “OK”,
“traceId”: “5d4e983e0e5335dda28c254b0e2ee130|PUS000DE23|0.0.0.1”
}

any errors?


But when open this URL in Google Chrome, it returns different results:

{
“authenticationResultCode”: “ValidCredentials”,
“brandLogoUri”: “https://dev.virtualearth.net/Branding/logo_powered_by.png”,
“copyright”: “Copyright © 2024 Microsoft and its suppliers. All rights reserved. This API cannot be accessed and the content and any results may not be used, reproduced or transmitted in any manner without express written permission from Microsoft Corporation.”,
“errorDetails”: [
“One or more parameters are not valid.”,
“uriScheme: This parameter value has an invalid format.”
],
“resourceSets”: [ ],
“statusCode”: 400,
“statusDescription”: “Bad Request”,
“traceId”: “0dbbbe1761fdac194abda6c677cd060e|PUS000DE1B|0.0.0.1”

I’m not sure why there’s a difference between the browsers (are you sure you copied the complete URL between the two?), but in any case, neither of those responses are the 500 error you’re getting from Unreal. Just to make sure: are you still see that 500 error in Unreal? If so, perhaps your network requires some kind of proxy server, and the web browsers are configured to use it while Unreal is not?

Thanks for your reply.
How can I address this issue?

If you need to specify a proxy to be used by Unreal, some users have reported that you can do so by setting the HTTP_PROXY and HTTPS_PROXY environment variables. The first step is to confirm that that is the problem, though. As I mentioned in my last message: are you still getting 500 errors in Unreal? Is the web browser on your system configured to use a proxy?

Yeah, the 500 errors still exists. How to check the browser’s proxy settings?If the browser configured to use a proxy, how to set the HTTP_PROXY and HTTPS_PROXY environment variables?

Open your browser’s settings and search for “Proxy”. If you do need to set a proxy, I’d suggest talking to your IT folks or searching for info on Google. I don’t have a proxy myself and don’t know exactly how those environment variables have to be set (only that other people have used some successfully in the past). A more general Unreal forum may be more helpful.

Hey, I try to open “Cesium for Unreal Samples”, then I get 401 error.
The 401 error messages are caused by an access token issue. Then I use an proper access token.
When I try to add “Cesium World Terrain + Bing Maps Aerial” in this sample, it works well!
But when I do the same thing in a blank sample, the 500 errors still exists.


Please share screenshots of the problem project. It looks like everything is working fine in the screenshots you shared.

By the way, if you update the Cesium for Unreal Samples project, the token issue should go away.

“Bing Maps Aerial” cannot be added to the problem project
The output log is as follows:
LogCesium: Loading tileset for asset ID 0
LogCesium: Loading tileset for asset ID 0 done
LogCesium: Loading tileset for asset ID 1
LogCesium: Loading tileset for asset ID 1 done
LogHttp: Warning: 00000A8582020500: request has been successfully processed. URL: https://dev.virtualearth.net/REST/v1/Imagery/Metadata/Aerial?incl=ImageryProviders&key=AmXdbd8UeUJtaRSn7yVwyXgQlBBUqliLbHpgn2c76DfuHwAXfRrgS5qwfHU6Rhm8&uriScheme=https, HTTP code: 500, content length: 609, actual payload size: 609, elapsed: 0.25s
LogHttp: Warning: 00000A8582020500 Response Header Date: Tue, 14 May 2024 13:34:51 GMT
LogHttp: Warning: 00000A8582020500 Response Header Content-Type: application/json; charset=utf-8
LogHttp: Warning: 00000A8582020500 Response Header Content-Length: 609
LogHttp: Warning: 00000A8582020500 Response Header Connection: keep-alive
LogHttp: Warning: 00000A8582020500 Response Header Access-Control-Allow-Headers: Content-Type,X-FD-Features,X-FD-FLIGHT,PreferAnonymous
LogHttp: Warning: 00000A8582020500 Response Header Access-Control-Allow-Methods: POST, GET, OPTIONS
LogHttp: Warning: 00000A8582020500 Response Header Access-Control-Allow-Origin: *
LogHttp: Warning: 00000A8582020500 Response Header Alt-Svc: h3=“:443”; ma=86400
LogHttp: Warning: 00000A8582020500 Response Header Cache-Control: no-cache
LogHttp: Warning: 00000A8582020500 Response Header X-BM-FE-Elapsed: 1, 1
LogHttp: Warning: 00000A8582020500 Response Header X-BM-TraceID: 0e6224ac9968791b2a2ba34b13c6e7a4
LogHttp: Warning: 00000A8582020500 Response Header X-BM-Srv: mapsplatform-frontend-5d8699c9d4-xlvbx
LogHttp: Warning: 00000A8582020500 Response Header x-azure-ref: 20240514T133451Z-r1dfb5f8656kpmbrg2pa1ux52c0000000fhg000000017ev1
LogHttp: Warning: 00000A8582020500 Response Header X-Cache: CONFIG_NOCACHE
LogCesium: Error: [2024-05-14 21:34:51.192] [error] [RasterOverlayCollection.cpp:127] Received an error from the Bing Maps imagery metadata service: Your request could not be completed because there was a problem with the service.

Sorry, but I really can’t imagine why CWT+Bing would work fine in Cesium for Unreal Samples, but give you 500 errors in a new project. That doesn’t make much sense. A couple of things to check:

  1. Are you using the exact same Cesium ion token in both places? I can’t think why this would matter, as long as the tokens are valid, but it’s something to check.
  2. Is this 500 error just intermittent? If you click “Refresh Tileset” on the CesiumWorldTerrain Actor a few times, does it go away? Or does it sometimes appear even in the Cesium for Unreal Samples?
  3. Are you able to reproduce the error in the new project on other machines as well? What about on other networks?