I'm working on a project using SDL Web Cloud (8.1) and DXA 1.7. I'm encountering an error with Ambient Data Framework. I enter a URL such as .../example-page/?test

Instead of rendering the page as is, it renders {"error":"InternalServerError"}.

Looking at the cd_client.log, I found:

ERROR [Sdl.Web.Delivery.ADF.AmbientRuntime.OnRequestStart] - Problem EXCEPTION: System.ArgumentNullException: Value cannot be null. Parameter name: key at System.ThrowHelper.ThrowArgumentNullException(ExceptionArgument argument) at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue, value, Boolean add) at Sdl.Web.Delivery.ADF.AmbientRuntime.SetWebRequestClaims(HttpRequest request, IClaimStore claimStore) at Sdl.Web.Delivery.ADF.AmbientRuntime.OnRequestStart(HttpApplication application, HttpContext context, IClaimStore claimStore, ISet`1 templateReadOnlyClaims, ISet`1 templateImmutableClaims, ISet`1 templateSessionScopeClaims, Boolean dispatchOdataRequest)

ERROR: [Sdl.Web.Delivery.ADF.AmbientRuntime.OnRequestStart] - Setting status code:500

What I've tried:

  • Disable ADF from web.config - page renders as expected
  • Step through via PageController to identify where ADF is referenced or error is thrown - no luck
  • Check site log - no error
  • Reviewed cd_ambient_conf.xml to see if there's any configuration to avoid this - no luck
  • Reviewed ADF documentation

Is there anything I can do (i.e. perhaps using a RequestValidator) to avoid returning this error? There will be instances when query string value will be empty.

  • 1
    The problem seems to be that one of the claims has 'null' for a URI, which is not allowed (nor expected, apparently). You should check the name/key of anything in the request (including cookies and headers) to see if you can figure out the culprit -- and also check the cartridges that you have installed as maybe one of them is adding the claim without a claim URI. – Peter Kjaer Oct 1 at 13:51
  • 1
    I guess the assumption in the ADF is that query string parameters are in format key=value, whereas your query string parameter only has a key (test) – Rick Pannekoek Oct 1 at 18:42
  • Enable the TRACE logs on both dxa web app and content service to see your claims values what is get forwarded, could be some firewall trip out some headers values. – Velmurugan Oct 5 at 5:54
up vote 1 down vote accepted

I was working in an SDL Cloud implementation which made it difficult to troubleshoot this issue. I reached out to SDL and they've provided a hotfix (CD_8.5.0.6337) which worked.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.