abp switch-to-stable
This updates the solution’s ABP NuGet/NPM package versions to the current stable line (e.g., 10.5.0).
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.
IBackgroundJobStore (EF Core implementation) uses the Background Jobs module’s own DbContext / connection name (by default AbpBackgroundJobs) and it is not your AppDbContext. So the fact that AppDbContext resolves the tenant DB correctly does not guarantee that EfCoreBackgroundJobStore will, unless the Background Jobs module is also configured for tenant-specific connection resolution and migrations in the same way.AbpBackgroundJobs table), andICurrentTenant.Change(...) (your approach is conceptually correct), but only if the Background Jobs module’s DbContext is actually tenant-aware and mapped to the tenant connection string.Make sure the Background Jobs module uses the tenant DB connection
AbpBackgroundJobs by default), or ensure AbpBackgroundJobs is mapped to Default for tenants (your attempt #2 is the correct direction conceptually).Poll inside a Unit of Work after switching tenant Even though you tried it, the safe pattern is:
using (_currentTenant.Change(tenantId))
{
using var scope = _serviceProvider.CreateScope();
var uowManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>();
using var uow = uowManager.Begin(requiresNew: true, isTransactional: false);
var jobStore = scope.ServiceProvider.GetRequiredService<IBackgroundJobStore>();
var jobs = await jobStore.GetWaitingJobsAsync(null, 100);
await uow.CompleteAsync();
}
If this still reads from host DB, it strongly indicates the Background Jobs module is still resolving its own connection as host (i.e., its DbContext is not using the tenant-mapped connection in your setup), even though Default resolves fine for your AppDbContext.
If you need strict DB-per-tenant job queues, query via your tenant DbContext is acceptable
Given your proof that direct querying through your tenant-resolving AppDbContext returns the expected rows, and IBackgroundJobStore continues to hit host DB, the practical approach in DB-per-tenant systems is to bypass IBackgroundJobStore and query/process BackgroundJobRecord from the tenant DbContext that you know is correctly wired to tenant connection strings.
This aligns with the general ABP guidance that ICurrentTenant.Change(...) is the mechanism to operate per-tenant in background workers, and that “disable tenant filter” only helps in shared-db scenarios (not DB-per-tenant).
Disable<IMultiTenant>() will not make DB-per-tenant work; it only changes filtering, not which database you connect to.IBackgroundJobsDbContext with your AppDbContext typically won’t help unless the Background Jobs EF Core module’s DbContext/connection-name mapping is fully aligned with your tenant DB strategy.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.
HttpApi.Host project as your host (or convert your current host to the same minimal API host style) and do not include any MVC UI / Razor Pages / Theme modules.*.HttpApi.Host project (tiered solution) as your backend.HttpApi.Host module does not depend on any of these kinds of packages/modules:
Volo.Abp.AspNetCore.Mvc.UI.*Volo.Abp.AspNetCore.Mvc.UI.Theme.* (Lepton/LeptonX)...Web module that brings MVC UI/Razor PagesResult: there are no UI endpoints to render because the host doesn’t include UI at all.
In your host’s Program.cs, map only controllers (APIs) and don’t map Razor Pages:
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.UseConfiguredEndpoints(endpoints =>
{
endpoints.MapControllers();
// Do NOT add this:
// endpoints.MapRazorPages();
});
Enable ABP auto controllers so your Application Services are exposed as REST endpoints (and you don’t need any UI stack):
using Volo.Abp.AspNetCore.Mvc;
Configure<AbpAspNetCoreMvcOptions>(options =>
{
options.ConventionalControllers.Create(typeof(MyProjectApplicationModule).Assembly);
});
This keeps the backend focused on API endpoints only.
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.
There is no released/verified update that AI Management is now tenant-scoped. In the currently available/verified ABP content, “Tenant-Based Configuration” is listed as a future goal for the AI Management module (i.e., not implemented yet).
So, as of the latest verified materials, AI Management is not yet supported as a tenant-scoped feature, but it is on the roadmap.
For progress and the specific issue you linked (multi-tenancy context missing in background job args), the only definitive/trackable place is the support thread itself:
If you need an official ETA or commitment (release/version target), that is not present in the verified docs/articles I can access.
Sources:
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.
On the client, the ABP-conventional way is to detect authorization/permission failures via the ABP error payload’s error.code, not by parsing message text.
AbpAuthorizationException), ABP serializes the error as a RemoteServiceErrorResponse whose error.code is typically:
Volo.Authorization:010001RemoteServiceErrorInfo (example in an ABP support ticket shows exactly this code with message “Authorization failed! Given policy has not granted.”).Status code expectation
error.code to be reliable.Is there a documented list of ABP authorization error codes?
Volo.Authorization:010001 from ABP support content, but I don’t have a verified official “complete list of authorization error codes” document in the available context.Volo.Authorization:010001 as the canonical permission/authorization failure code; no verified complete list is available from the tools for this specific query.Does ABP ever return 403 for non-permission errors? How to distinguish?
RemoteServiceErrorInfo.code:
Volo.Authorization:010001error.code values.error.code.Angular side / built-in helper
skipHandleError)” infrastructure (RestService + HttpErrorReporterService + error handler).error.code === 'Volo.Authorization:010001'.Minimal example logic (pseudo-TypeScript):
const abpError = (err?.error as any)?.error; // RemoteServiceErrorResponse.error
if (abpError?.code === 'Volo.Authorization:010001') {
// show "You don't have permission"
} else {
// generic handling
}
Links (verified):
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.
Volo.Abp.LeptonXTheme is not the correct module name for downloading LeptonX theme source with abp get-source. For LeptonX, download the Pro package instead:abp get-source Volo.Abp.LeptonXTheme.Pro --version 10.5.0
If the download still fails, try these two proven workarounds:
abp get-source inside an existing solution folder; it can cause failures and/or file spillage):mkdir C:\Temp\leptonx-src
cd C:\Temp\leptonx-src
abp get-source Volo.Abp.LeptonXTheme.Pro --version 10.5.0
%USERPROFILE%\.abp\templates\abp get-source Volo.Abp.LeptonXTheme.Pro --version 10.5.0
(Verified references you can point to)
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.
That ABP Studio message means your current ABP account/organization does not have source-code entitlement for that module (it’s not a local/ABP Framework 10.5.0 issue).
LeptonX Theme requires an ABP Team (or higher) license, and source-code access is granted based on your organization’s commercial entitlement. If your organization/license tier doesn’t include it, ABP Studio will show exactly this warning and won’t download/replace the module source.
If your subscription does include it, the practical fix is account/entitlement related:
For entitlement verification / correction, please contact the ABP team here (they can check your organization’s access on their side):
https://abp.io/contact
Links (verified):
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.
Volo.Abp.LeptonXTheme.Pro (this is the LeptonX Theme source package name used for source download).
Volo.Abp.LeptonXTheme, ABP Studio may show “You don't have access…” because the source is provided under the .Pro package.Volo.Abp.LeptonXTheme.Pro is not available in the list / still blockedVolo.Abp.LeptonXTheme.Pro)(Verified reference showing the correct LeptonX download name and that ABP Suite/Studio can be used:)
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.
Volo.Abp.LeptonXTheme is not the package/module name that has downloadable “source code replace” content in ABP Studio. For LeptonX, the downloadable source is the Pro package.abp login
abp get-source Volo.Abp.LeptonXTheme.Pro
Alternatively, download it from ABP Studio / ABP Suite via the “Download Source Code” flow, but make sure you select Volo.Abp.LeptonXTheme.Pro (not Volo.Abp.LeptonXTheme).
If ABP CLI/Studio still says you don’t have access after using the correct package name, that indicates an account/organization entitlement issue on the licensing side (not a code/config issue). In that case, please contact the licensing/support team here (include your organization name and the screenshot): https://abp.io/contact
Less obvious references:
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.
Volo.Abp.LeptonXTheme (there is no Volo.Abp.LeptonXTheme.Pro entry in Studio CLI, so you can’t use it).mkdir -p ~/Downloads/leptonx-5.4.0-src
cd ~/Downloads/leptonx-5.4.0-src
abp logout
abp login <your-email>
rm -rf ~/.abp
abp get-source Volo.Abp.LeptonXTheme -v 5.4.0
-v 5.4.0 is specified, then the most likely cause is: the backend feed does not have the 5.4.0 source bundle published for that module, while “Latest” does. In that case, there is no client-side trick to force-download 5.4.0 via CLI; the correct way to obtain that exact version is to use ABP Suite/ABP Studio UI’s download source feature (it uses a different flow and is the recommended workaround in similar tickets).(Verified refs)
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.