Open Closed

CMS Pages Cant Load #10617


User avatar
0
devchase321 created

i create page in CMSKit and show that pages on Public Site that are work fine recently i get exception on that CMS Pages and Public Site is automatically redirect on Authserver . here is that exception

{ "code": null, "message": "Your request is not valid!", "details": "The following errors were detected during validation.\r\n - The value 'home' is not valid.\r\n", "data": null, "validationErrors": [ { "message": "The value 'home' is not valid.", "members": [ "id" ] } ] } 2026-04-16 07:13:59.473 +00:00 [WRN] ModelState is not valid! See ValidationErrors for details. Volo.Abp.Validation.AbpValidationException: ModelState is not valid! See ValidationErrors for details. at Volo.Abp.AspNetCore.Mvc.Validation.ModelStateValidator.Validate(ModelStateDictionary modelState) at Volo.Abp.AspNetCore.Mvc.Validation.AbpValidationActionFilter.OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync() --- End of stack trace from previous location --- at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|26_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) 2026-04-16 07:13:59.474 +00:00 [WRN] There are 1 validation errors: The value 'home' is not valid. (id) 2026-04-16 07:13:59.494 +00:00 [INF] Executing ObjectResult, writing value of type 'Volo.Abp.Http.RemoteServiceErrorResponse'. (Emerald.HttpApi)' 2026-04-16 07:13:59.504 +00:00 [INF] Request finished HTTP/2 GET https://localhost:44362/home - 400 null application/json; charset=utf-8 5669.4966ms 2026-04-16 07:14:00.838 +00:00 [DBG] Executing HealthCheck collector HostedService. it give this exception on all CMS pages

  • Template: app
  • Created ABP Studio Version: 1.2.2
  • Current ABP Studio Version: 2.2.6
  • Tiered: Yes
  • Multi-Tenancy: No
  • UI Framework: blazor-webapp
  • Theme: leptonx
  • Theme Style: system
  • Theme Menu Placement: side
  • Database Provider: ef
  • Database Management System: sqlserver
  • Separate Tenant Schema: No
  • Create Initial Migration: Yes
  • Run Db Migrator: Yes
  • Mobile Framework: none
  • Public Website: Yes
  • Social Login: Yes
  • Include Tests: Yes
  • Kubernetes Configuration: Yes
  • Distributed Event Bus: rabbitmq
  • Use Local References: No
  • Optional Modules:
    • GDPR
    • FileManagement
    • TextTemplateManagement
    • LanguageManagement
    • AuditLogging
    • Chat
    • OpenIddictAdmin
  • Selected Languages: English, Spanish
  • Default Language: English
  • Create Command: abp new Emerald -t app --tiered --ui-framework blazor-webapp --database-provider ef --database-management-system sqlserver --theme leptonx --public-website --without-cms-kit --dont-run-bundling --no-multi-tenancy -no-saas -chat -file-management
Markdown supported.
Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)

5 Answer(s)
  • User Avatar
    0
    AI-Bot created
    Support Team ABP Agent

    1. Solution

    This error means your public website is hitting an API endpoint that expects id as a Guid, but it is receiving a slug like "home":

    • Request: GET https://localhost:44362/home
    • Validation error: The value 'home' is not valid. (id)
    • So the route that is being executed is effectively something like .../{id} where id is Guid.

    That’s why all CMS pages fail: the “catch-all route” that should map /{slug} to the CMS Kit public page renderer is not being used anymore (routing order / endpoint mapping / fallback configuration changed after upgrade or custom routing/middleware).

    Apply these fixes (they are safe and deterministic):

    1. Ensure the CMS Kit Public Website module is actually included in the Public Web project In your Public Website host module, you must depend on the CMS Kit Public Web module (or the commercial equivalent if you’re using Pro). Example pattern:
    [DependsOn(
        // ...
        typeof(Volo.CmsKit.Public.Web.CmsKitPublicWebModule)
    )]
    public class YourPublicWebModule : AbpModule
    {
    }
    

    If this dependency is missing, ABP won’t register the Razor Pages/routes that handle /{slug}.

    1. Make sure the Public Website is not mapping a “{id} as Guid” route at root Search your Public Web project for conventional routes like:
    • pattern: "{id}" or "{controller}/{action}/{id:guid?}" mapped at root
    • Minimal API routes like app.MapGet("/{id}", ...) where id is bound to Guid
    • Any MapFallbackToPage(...) / fallback endpoint that forwards everything to an endpoint that binds id as Guid

    Remove/adjust those routes so they don’t steal /{slug}.

    1. If you added global authorization, remove it for the Public Website Your symptom “redirect to AuthServer” typically happens when the Public Website has a global authorization policy like FallbackPolicy = DefaultPolicy / RequireAuthenticatedUser().

    Make sure you did not configure a global “require authenticated user” policy for the Public Website app. If you did, remove it (public CMS pages must be anonymously accessible).

    1. Rebuild & restart both Public Web and HttpApi Host After fixing routing/module dependency/policies, restart. Then test:
    • GET /home should return HTML (page content)
    • GET /api/cms-kit-public/pages/home should return 200/204 (depending on existence), not a redirect/challenge

    If you did any module/feature changes, also run DbMigrator (you already do, but do it once after these changes).

    2. Sources

    • https://docs.abp.io/en/abp/latest/Modules/Cms-Kit/Index
    • https://docs.abp.io/en/abp/latest/Modules/Cms-Kit/Pages

    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)
  • User Avatar
    0
    devchase321 created

    not help this

    Markdown supported.
    Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)
  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    Hi,

    Could you share a few things so we can reproduce this on our side?

    1. The module files of your HttpApi.Host, Web.Public(.Host) and Blazor.WebApp.Tiered
    2. The exact reproduction steps, including:
      • Which URL/port you are hitting in the browser (e.g. the Public Website URL)
      • How the home CMS page was created (is home the slug, or did you set it as the default home page?)
      • Whether you enabled PagesFeature via GlobalFeatureManager
    3. Debug-level logs from the HttpApi.Host (port 44362 in your log) and the Web.Public(.Host) when the issue happens. Here is how to enable Debug logs: https://abp.io/support/questions/8622/How-to-enable-Debug-logs-for-troubleshoot-problems

    If possible, a minimal reproduction project would speed things up a lot.

    liming.ma@volosoft.com

    Thanks

    Markdown supported.
    Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)
  • User Avatar
    0
    devchase321 created

    https://drive.google.com/file/d/DELETED-inxLleY/view?usp=sharing

    Markdown supported.
    Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)
  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    Hi,

    Found the root cause. In your NotificationController.cs:

    [HttpGet("/{id}")]
    public Task<NotificationDto> GetAsync(Guid id)
    {
        return _notificationAppService.GetAsync(id);
    }
    

    The leading / in [HttpGet("/{id}")] makes the route absolute, which overrides the controller-level [Route("api/app/notification")]. As a result this action matches any single-segment URL at the root — including /home, /about, etc.

    Since Emerald.Web.Public depends on EmeraldHttpApiModule, this controller is registered in the Public website's routing table. When your HomeController redirects unauthenticated users to /home, ASP.NET Core matches NotificationController.GetAsync, tries to bind home to the Guid id parameter, fails, and returns 400. The [Authorize] attribute on the controller is also what triggers the AuthServer redirect you observed.

    The log confirms this:

    Executing endpoint 'Emerald.Controllers.Notifications.NotificationController.GetAsync (Emerald.HttpApi)'
    Route matched with {area = "app", controller = "Notification", action = "Get"}. Executing controller action with signature ... GetAsync(System.Guid) ...
    Request finished HTTP/2 GET https://localhost:44362/home - 400
    

    Fix: Remove the leading / so the route becomes relative to the controller:

    [HttpGet("{id}")]
    public Task<NotificationDto> GetAsync(Guid id)
    {
        return _notificationAppService.GetAsync(id);
    }
    

    The endpoint will then be GET /api/app/notification/{id} as intended.

    Thanks

    Markdown supported.
    Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)
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 17, 2026, 08:41
1
ABP Assistant
🔐 You need to be logged in to use the chatbot. Please log in first.