Hi,
After upgrading our solution to ABP 10.2, we encountered a crash in the AI Management Blazor playground.
Problem: When opening the AI Management workspace playground, the page crashes during rendering with:
System.ArgumentNullException: Value cannot be null. (Parameter 'markdown')
Observed behavior:
- If I clear browser local storage / site data for the app origin and open the playground again, the issue disappears and the page works normally.
- This suggests the crash is related to restored conversation history containing a chat message with null markdown/text content.
The AI Management chat component restores conversation history from browser storage In ABP 10.2, chat responses can include tool-call style data separately from text A restored message with null content appears to be passed to Markdig without a null check
Expected behavior: The component should safely handle null or empty message content and should not crash the Blazor circuit.
Actual behavior: The Blazor circuit crashes while rendering the AI Management playground.
Environment:
ABP Framework: 10.2.0 UI: Blazor Server Module: AI Management
Workaround: Clear browser local storage / site data for the application origin, then reopen the playground.
Could you please confirm whether this is a known issue or whether there is already an internal fix planned for a future version?
Thanks.
- Template: app
- Created ABP Studio Version: 2.2.1
- Current ABP Studio Version: 2.2.6
- Tiered: No
- Multi-Tenancy: Yes
- UI Framework: blazor-server
- Theme: leptonx
- Theme Style: system
- Theme Menu Placement: side
- Database Provider: ef
- Database Management System: sqlserver
- Separate Tenant Schema: No
- Mobile Framework: maui
- Public Website: No
- Social Login: No
- Include Tests: Yes
- Kubernetes Configuration: No
- Distributed Event Bus: none
- Use Local References: No
- Optional Modules:
- GDPR
- FileManagement
- TextTemplateManagement
- LanguageManagement
- AuditLogging
- OpenIddictAdmin
- Selected Languages: English, Arabic, Chinese (Simplified), Chinese (Traditional), Czech, English (United Kingdom), Finnish, French, German (Germany), Hindi , Hungarian, Icelandic, Italian, Portuguese (Brazil), Romanian (Romania), Russian, Slovak, Spanish, Swedish, Turkish
- Default Language: English
- Exception message and full stack trace:
System.ArgumentNullException: Value cannot be null. (Parameter 'markdown') at Markdig.Helpers.ThrowHelper.ArgumentNullException_markdown() at Markdig.Markdown.ToHtml(String markdown, MarkdownPipeline pipeline, MarkdownParserContext context) at Volo.AIManagement.Client.Blazor.Components.ChatClientChat.kkErlSOPW(RenderTreeBuilder) at Blazorise.CardBody.<BuildRenderTree>b__5_0(RenderTreeBuilder __builder2) at Microsoft.AspNetCore.Components.CascadingValue`1.Render(RenderTreeBuilder builder) at Microsoft.AspNetCore.Components.Rendering.ComponentState.RenderIntoBatch(RenderBatchBuilder batchBuilder, RenderFragment renderFragment, Exception& renderFragmentException)
[2026-04-09T14:03:57.225Z] Error: System.ArgumentNullException: Value cannot be null. (Parameter 'markdown') at Markdig.Helpers.ThrowHelper.ArgumentNullException_markdown() at Markdig.Markdown.ToHtml(String markdown, MarkdownPipeline pipeline, MarkdownParserContext context) at Volo.AIManagement.Client.Blazor.Components.ChatClientChat.kkErlSOPW(RenderTreeBuilder) at Blazorise.CardBody.
Secondary browser/client-side error after the Blazor circuit breaks:
Uncaught (in promise) Error: Cannot send data if the connection is not in the 'Connected' State. at Mn.send (blazor.web.js:1:87196) at Cn._sendMessage (blazor.web.js:1:64679) at Cn._sendWithProtocol (blazor.web.js:1:64769) at Cn.send (blazor.web.js:1:64877) at Ho.beginInvokeDotNetFromJS (blazor.web.js:1:145009) at b.invokeDotNetMethodAsync (blazor.web.js:1:5328) at I.invokeMethodAsync (blazor.web.js:1:7117) at closable.js?v=2.0.4.0:59:32 at new Promise (<anonymous>) at tryClose (closable.js?v=2.0.4.0:58:19)
- Steps to reproduce the issue:
- Upgrade the solution to ABP 10.2.
- Run the Blazor Server application.
- Open the AI Management workspace playground.
- Have an existing saved conversation/history in browser storage for the playground.
- Reopen the playground page so the conversation is restored automatically.
- The page crashes during rendering with:
System.ArgumentNullException: Value cannot be null. (Parameter 'markdown')
4 Answer(s)
-
0
This looks like a real bug in the AI Management Blazor
ChatClientChatcomponent (ABP 10.2.0): when it restores chat history from browser local storage, at least one stored message can have null text/markdown, and the component ends up calling Markdig with a null string (Markdown.ToHtml(null, ...)), which throwsSystem.ArgumentNullException (markdown)and breaks the Blazor circuit.Your workaround (clearing site data/local storage) is consistent with this: it removes the persisted conversation that contains a null-content message.
There is no verified public fix note/ticket I can point to for ABP 10.2.0 specifically (and I can’t access the commercial source here to confirm whether it’s already patched internally). Practically, until you update to a version where this is fixed, the only deterministic mitigations are:
- Avoid restoring the problematic conversation by changing
ConversationId(e.g., include a version suffix like"...-v2"so a new local-storage key is used), or - Clear the stored conversation (your current workaround).
- Avoid restoring the problematic conversation by changing
If you embed the widget yourself (not the built-in playground page), you can also make it resilient by ensuring you never pass a null markdown string into a markdown renderer (i.e., normalize null to
""before rendering). The crash indicates the playground’s own rendering path is missing that guard.
Sources:
- https://abp.io/docs/10.2//modules/ai-management/ (the component persists/restores chat via
ConversationId) - https://abp.io/support/questions/2028 (ABP team previously acknowledged the same Markdig null-markdown exception pattern as an “unexpected behavior” to be fixed)
This response was generated by AI. If it didn’t solve your problem, feel free to post a new answer — our support team will jump in to help you soon.
Markdown supported.Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post) -
0
Thanks.
Markdown supported.Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)