Activities of "AyazNaseer"

Version: ABP 10.3.0, Volo.AIManagement 10.3.0, Blazor Server, EF Core / SQL Server

Description A workspace without any embedder or vector store still gets the RAG tool on every chat request. As a result, the model often calls search_documents, the tool answers that no embedding provider is configured, and the whole prompt (including attachments) is sent to the model a second time.

Steps to reproduce

Create a workspace in the AI Management UI (OpenAI chat provider) and leave Embedder Provider and Vector Store Provider empty. Save it. In the database, EmbedderProvider and VectorStoreProvider are stored as '' (empty string), not NULL. Send a chat request through this workspace, for example via IChatClientResolver or IAIChatCompletionIntegrationService.

Expected

No RAG tool and no extra system instruction, because the workspace has no embedder.

Actual

AIManagementChatClient.PrepareOptionsAsync adds a search_documents tool (tool_choice = auto) and a system instruction to always call search_documents first. The model calls the tool, which replies that the embedding provider is not configured, and the request is sent again.

In our measurement, a request of about 186K prompt tokens was billed as about 372K. This doubles cost and rate-limit (HTTP 429) pressure.

Cause (version 10.3.0)

Two checks disagree on what "configured" means:

WorkspaceConfigurationStore: HasEmbedderConfiguration = EmbedderProvider != null, so '' counts as configured. DocumentSearchService: uses string.IsNullOrWhiteSpace(...), so '' counts as not configured. The Workspaces page saves empty fields as '', so a workspace edited in the UI can never be stored as NULL.

Suggested fix

Use !string.IsNullOrWhiteSpace(EmbedderProvider) in WorkspaceConfigurationStore, and/or normalise empty provider fields to NULL when saving a workspace.

Workaround Set the columns to NULL directly in the database. Editing the workspace in the UI afterwards brings the problem back.

Thanks.

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:
  1. Upgrade the solution to ABP 10.2.
  2. Run the Blazor Server application.
  3. Open the AI Management workspace playground.
  4. Have an existing saved conversation/history in browser storage for the playground.
  5. Reopen the playground page so the conversation is restored automatically.
  6. The page crashes during rendering with: System.ArgumentNullException: Value cannot be null. (Parameter 'markdown')

Add “Excel import” Button for CRUD Pages

Description: Add an “Excel import” button on CRUD pages generated by ABP Suite. Users can upload an Excel file to create new records or update existing ones.

  • Upload Excel file via UI.

  • Validate data (required fields, formats, etc.).

  • Show import results (created, updated, failed rows with errors).

  • Restrict access with permissions.

Additional Request: It would also be nice if the file generated by the "Excel export" button includes the tenant name (if triggered from a tenant instance) and the DateTime in the file name.

Example: Name_Tenant_DateTime.xlsx

Showing 1 to 4 of 4 entries
Boost Your Development
ABP Live Training
Packages
See Trainings
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v10.8.0-preview. Updated on September 28, 2026, 11:44
1
ABP Assistant
🔐 You need to be logged in to use the chatbot. Please log in first.