New module: Dynamic dashboard
Payment module: Invoice system
Thanks, bot! 🙂 ABP team, I reported this so you can take a look, as it could become a time-consuming issue if all three developers are experiencing the same problem. I hope the information provided is enough to investigate. If not, I’d be happy to show you the issue live by sharing my screen, just let me know.
We have a tiered solution created some months ago. There are 3 developers working on it and when 2 of them try to open the solution with ABP Suite, it's is failing. But it is working for one of them.
This is the project structure (I do not see the option to get the solution configuration with ABP Studio, the button is not visible now):
ABP Studio version is 1.0.2
ABP Suite version is 9.1.1, same as the solution.
Below you can find the error and the workaround. We are reporting it in case there is an issue with ABP Suite reading the solution or something similar.
This is the error we found in ABP Suite logs when trying to open the solution without success:

2025-07-01 12:19:42.041 +02:00 [INF] Loaded ABP modules:
...
2025-07-01 12:19:43.137 +02:00 [INF] Now listening on: http://localhost:3000
...
2025-07-01 12:19:46.935 +02:00 [INF] Executing ContentResult with HTTP Response ContentType of application/javascript
2025-07-01 12:19:46.935 +02:00 [INF] Request finished HTTP/1.1 GET http://localhost:3000/Abp/ServiceProxyScript - 200 9386 application/javascript 419.1011ms
2025-07-01 12:19:46.936 +02:00 [DBG] Executed AbpApplicationConfigurationAppService.GetAsync().
2025-07-01 12:19:46.936 +02:00 [INF] Executed action Volo.Abp.AspNetCore.Mvc.Localization.AbpApplicationLocalizationScriptController.GetAsync (Volo.Abp.AspNetCore.Mvc) in 409.6628ms
2025-07-01 12:19:46.936 +02:00 [INF] Executed endpoint 'Volo.Abp.AspNetCore.Mvc.Localization.AbpApplicationLocalizationScriptController.GetAsync (Volo.Abp.AspNetCore.Mvc)'
2025-07-01 12:19:46.936 +02:00 [INF] Request finished HTTP/1.1 GET http://localhost:3000/Abp/ApplicationLocalizationScript?cultureName=en - 200 69286 application/javascript 422.0271ms
2025-07-01 12:19:46.963 +02:00 [WRN] The cookie 'XSRF-TOKEN' has set 'SameSite=None' and must also set 'Secure'.
2025-07-01 12:19:46.965 +02:00 [INF] Executing ContentResult with HTTP Response ContentType of application/javascript
2025-07-01 12:19:46.966 +02:00 [INF] Executed action Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationScriptController.Get (Volo.Abp.AspNetCore.Mvc) in 445.6118ms
2025-07-01 12:19:46.966 +02:00 [INF] Executed endpoint 'Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationScriptController.Get (Volo.Abp.AspNetCore.Mvc)'
2025-07-01 12:19:46.966 +02:00 [INF] Request finished HTTP/1.1 GET http://localhost:3000/Abp/ApplicationConfigurationScript - 200 2207 application/javascript 451.5745ms
2025-07-01 12:19:47.086 +02:00 [INF] Request starting HTTP/1.1 POST http://localhost:3000/api/abpSuite/addSolution - application/json 82
2025-07-01 12:19:47.090 +02:00 [INF] Executing endpoint 'Volo.Abp.Suite.Controllers.AbpSuiteController.AddSolutionAsync (Volo.Abp.Suite)'
2025-07-01 12:19:47.094 +02:00 [INF] Route matched with {action = "AddSolution", controller = "AbpSuite", area = "", page = ""}. Executing controller action with signature System.Threading.Tasks.Task`1[Volo.Abp.Suite.Models.Solution] AddSolutionAsync(Volo.Abp.Suite.Services.AddSolutionInput) on controller Volo.Abp.Suite.Controllers.AbpSuiteController (Volo.Abp.Suite).
2025-07-01 12:19:47.161 +02:00 [INF] Request starting HTTP/1.1 GET http://localhost:3000/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.woff2 - null null
2025-07-01 12:19:47.162 +02:00 [INF] The file /libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.woff2 was not modified
2025-07-01 12:19:47.163 +02:00 [INF] Request finished HTTP/1.1 GET http://localhost:3000/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.woff2 - 304 null font/woff2 1.5587ms
2025-07-01 12:19:47.185 +02:00 [INF] Received HTTP response headers after 252.7415ms - 200
2025-07-01 12:19:47.186 +02:00 [INF] End processing HTTP request after 271.0727ms - 200
2025-07-01 12:19:47.208 +02:00 [INF] Executing ObjectResult, writing value of type 'System.Boolean'.
2025-07-01 12:19:47.209 +02:00 [INF] Executed action Volo.Abp.Suite.Controllers.AbpSuiteController.IsSuiteOutDatedAsync (Volo.Abp.Suite) in 594.6038ms
2025-07-01 12:19:47.209 +02:00 [INF] Executed endpoint 'Volo.Abp.Suite.Controllers.AbpSuiteController.IsSuiteOutDatedAsync (Volo.Abp.Suite)'
2025-07-01 12:19:47.209 +02:00 [INF] Request finished HTTP/1.1 GET http://localhost:3000/api/abpSuite/is-suite-outdated - 200 null application/json; charset=utf-8 627.9899ms
2025-07-01 12:19:48.605 +02:00 [ERR] ---------- RemoteServiceErrorInfo ----------
{
"code": null,
"message": "An internal error occurred during your request!",
"details": null,
"data": null,
"validationErrors": null
}
2025-07-01 12:19:48.609 +02:00 [ERR] Error getting value from 'MigrationsMigrationsDbContext' on 'Volo.Abp.Suite.Models.Solution'.
Newtonsoft.Json.JsonSerializationException: Error getting value from 'MigrationsMigrationsDbContext' on 'Volo.Abp.Suite.Models.Solution'.
---> System.NullReferenceException: Object reference not set to an instance of an object.
at Volo.Abp.Suite.Models.Solution.get_MigrationsMigrationsDbContext()
at Newtonsoft.Json.Serialization.ExpressionValueProvider.GetValue(Object target)
--- End of inner exception stack trace ---
at Newtonsoft.Json.Serialization.ExpressionValueProvider.GetValue(Object target)
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.CalculatePropertyValues(JsonWriter writer, Object value, JsonContainerContract contract, JsonProperty member, JsonProperty property, JsonContract& memberContract, Object& memberValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeObject(JsonWriter writer, Object value, JsonObjectContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeValue(JsonWriter writer, Object value, JsonContract valueContract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerProperty)
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeList(JsonWriter writer, IEnumerable values, JsonArrayContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeValue(JsonWriter writer, Object value, JsonContract valueContract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerProperty)
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeObject(JsonWriter writer, Object value, JsonObjectContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeValue(JsonWriter writer, Object value, JsonContract valueContract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerProperty)
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.Serialize(JsonWriter jsonWriter, Object value, Type objectType)
at Newtonsoft.Json.JsonSerializer.SerializeInternal(JsonWriter jsonWriter, Object value, Type objectType)
at Newtonsoft.Json.JsonSerializer.Serialize(JsonWriter jsonWriter, Object value, Type objectType)
at Newtonsoft.Json.JsonConvert.SerializeObjectInternal(Object value, Type type, JsonSerializer jsonSerializer)
at Newtonsoft.Json.JsonConvert.SerializeObject(Object value, Type type, Formatting formatting, JsonSerializerSettings settings)
at Newtonsoft.Json.JsonConvert.SerializeObject(Object value, Formatting formatting, JsonSerializerSettings settings)
at Newtonsoft.Json.JsonConvert.SerializeObject(Object value, Formatting formatting)
at Volo.Abp.Suite.Areas.AbpSuite.CrudPageGenerator.Helpers.IoHelper.WriteObjectToFileAsync[T](String filePath, T obj, Formatting serializeFormat)
at Volo.Abp.Suite.Services.PersistanceService.SaveAppSettingsAsync(AppSettings appSettings)
at Volo.Abp.Suite.Services.PersistanceService.JyuRJXBu39(AddSolutionInput )
at Volo.Abp.Suite.Services.PersistanceService.AddSolutionAsync(AddSolutionInput input)
at Volo.Abp.Suite.Controllers.AbpSuiteController.AddSolutionAsync(AddSolutionInput input)
at lambda_method1880(Closure, Object)
at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableObjectResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)
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>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|26_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
2025-07-01 12:19:48.632 +02:00 [INF] Executing ObjectResult, writing value of type 'Volo.Abp.Http.RemoteServiceErrorResponse'.
2025-07-01 12:19:48.634 +02:00 [INF] Executed action Volo.Abp.Suite.Controllers.AbpSuiteController.AddSolutionAsync (Volo.Abp.Suite) in 1539.9778ms
2025-07-01 12:19:48.634 +02:00 [INF] Executed endpoint 'Volo.Abp.Suite.Controllers.AbpSuiteController.AddSolutionAsync (Volo.Abp.Suite)'
2025-07-01 12:19:48.634 +02:00 [INF] Request finished HTTP/1.1 POST http://localhost:3000/api/abpSuite/addSolution - 500 null application/json; charset=utf-8 1548.826ms
The workaround we found out is to modify the ABP Suite appsettings.json configuration. Once done, all developers could open the solution with ABP Suite again. First, we remove the configuration related to the project. Tried to open the solution again without success. Then we copy the following configuration (updating the paths accordingly to the local paths), and the solution could be opened.
{
"Id": "6d30d4ee-9166-4389-86ed-761acaa03b31",
"Name": "Driven2u.Cpaas",
"UiFramework": 5,
"ProjectNameWithCompanyName": "Driven2u.Cpaas",
"OnlyProjectName": "Cpaas",
"Path": "C:\\repos\\driven2u\\cpaas\\Driven2u.Cpaas.sln",
"RootProjectDirectory": "C:\\repos\\driven2u\\cpaas",
"SrcFolderDirectory": "C:\\repos\\driven2u\\cpaas\\src",
"TestFolderDirectory": "C:\\repos\\driven2u\\cpaas\\test",
"IsMicroserviceNolayerProject": false,
"NolayerProjectDirectory": null,
"NolayerContractsProjectDirectory": null,
"WebProjectDirectory": null,
"DomainProjectDirectory": "C:\\repos\\driven2u\\cpaas\\src\\Driven2u.Cpaas.Domain",
"DomainSharedProjectDirectory": "C:\\repos\\driven2u\\cpaas\\src\\Driven2u.Cpaas.Domain.Shared",
"ApplicationProjectDirectory": "C:\\repos\\driven2u\\cpaas\\src\\Driven2u.Cpaas.Application",
"ApplicationContractsProjectDirectory": "C:\\repos\\driven2u\\cpaas\\src\\Driven2u.Cpaas.Application.Contracts",
"EntityFrameworkCoreProjectDirectory": null,
"MongoDbProjectDirectory": "C:\\repos\\driven2u\\cpaas\\src\\Driven2u.Cpaas.MongoDB",
"EntityFrameworkCoreDbMigrationsProjectDirectory": null,
"MongoDbTestsProjectDirectory": "C:\\repos\\driven2u\\cpaas\\test\\Driven2u.Cpaas.MongoDB.Tests",
"EntityFrameworkCoreTestsProjectDirectory": null,
"DomainTestsProjectDirectory": "C:\\repos\\driven2u\\cpaas\\test\\Driven2u.Cpaas.Domain.Tests",
"ApplicationTestsProjectDirectory": "C:\\repos\\driven2u\\cpaas\\test\\Driven2u.Cpaas.Application.Tests",
"TestBaseProjectDirectory": "C:\\repos\\driven2u\\cpaas\\test\\Driven2u.Cpaas.TestBase",
"MigratorProjectDirectory": "C:\\repos\\driven2u\\cpaas\\src\\Driven2u.Cpaas.DbMigrator",
"MigratorCsprojFileName": "Driven2u.Cpaas.DbMigrator.csproj",
"AngularSolutionRootPath": null,
"DefaultNamespace": "Driven2u.Cpaas",
"DefaultNamespaceAsCamelCase": "driven2u.cpaas",
"MigrationsMigrationsDbContext": "CpaasDbContext",
"TenantMigrationsMigrationsDbContext": "CpaasTenantDbContext",
"DbContextFilePath": "C:\\repos\\driven2u\\cpaas\\src\\Driven2u.Cpaas.MongoDB\\MongoDb\\CpaasMongoDbContext.cs",
"TenantDbContextFilePath": null,
"DbContextModelCreatingExtensionsFilePath": "C:\\repos\\driven2u\\cpaas\\src\\Driven2u.Cpaas.MongoDB\\MongoDb\\CpaasMongoDbContext.cs",
"HttpApiHostProjectDirectory": "C:\\repos\\driven2u\\cpaas\\src\\Driven2u.Cpaas.HttpApi.Host",
"HttpApiProjectDirectory": "C:\\repos\\driven2u\\cpaas\\src\\Driven2u.Cpaas.HttpApi",
"HttpApiClientProjectDirectory": "C:\\repos\\driven2u\\cpaas\\src\\Driven2u.Cpaas.HttpApi.Client",
"BlazorProjectDirectory": "C:\\repos\\driven2u\\cpaas\\src\\Driven2u.Cpaas.Blazor",
"MauiBlazorProjectDirectory": null,
"BlazorWebAppProjectDirectory": null,
"StartupProjectDirectory": "C:\\repos\\driven2u\\cpaas\\src\\Driven2u.Cpaas.HttpApi.Host",
"StartupProjectName": "Driven2u.Cpaas.HttpApi.Host",
"DatabaseProvider": 2,
"DatabaseProviderName": "MongoDb",
"UiFrameworkName": "BlazorServer",
"ApplicationContractsExists": true,
"MigratorProjectExists": true,
"UpdateDatabaseMethod": 1,
"IsTieredArchitecture": true,
"ActiveDate": "2025-07-01T13:05:34.0123789+02:00",
"ProjectTemplateType": 1,
"AbpVersion": "9.1.1"
}
Hi ABP team,
We have to pass SAST (Static Application Security Testing) and DAST (Dynamic Application Security Testing) tests.
SAST analyzes the source code of the application to find flaws, while DAST examines a running application from an external perspective to detect vulnerabilities.
Right now we only executed SAST tests and we saw some vulnerabilities related to the framework and deployment code. I am sharing those findings with you, hope it helps to enhance the framework security (note: rename the png file to html to see the report):
Once we execute the DAST tests, I can share with you the results as well.
This is the solution configuration:
I did an update from 9.0.4 to 9.1, but only angular packages were updated to 9.1. Nuget packages are still at 9.0.4 in .csproj files. Is that unusual?
Hi, I reported a similar issue here: https://abp.io/qa/questions/8330/3a18c2d8-4a26-20d8-d7eb-768237da6db3 And yes, it's not usual... maybe the ABP team can give us a solution or workaroud.
When changing a Master entity from multi-tenant to non muti-tenant and viceversa, change the child entity accordingly. Currently only the master is being updated, and a modification in the child entity is required to update the multi-tenant property.
Hi, one additional issue, this one related to OpenIddictDataSeedContributor:
The CreateApplicationAsync() method only allows one redirectUri, but OpenID allows more than one RedirectUri. Same for the postLogoutRedirectUris...
In case It could help to update it, here is an updated implementation of the CreateApplicationAsync():
private async Task CreateApplicationAsync(
[NotNull] string applicationType,
[NotNull] string name,
[NotNull] string type,
[NotNull] string consentType,
string displayName,
string? secret,
List<string> grantTypes,
List<string> scopes,
List<string>? redirectUris = null,
List<string>? postLogoutRedirectUris = null,
List<string>? permissions = null,
string? clientUri = null,
string? logoUri = null)
{
if (!string.IsNullOrEmpty(secret) && string.Equals(type, OpenIddictConstants.ClientTypes.Public,
StringComparison.OrdinalIgnoreCase))
{
throw new BusinessException(L["NoClientSecretCanBeSetForPublicApplications"]);
}
if (string.IsNullOrEmpty(secret) && string.Equals(type, OpenIddictConstants.ClientTypes.Confidential,
StringComparison.OrdinalIgnoreCase))
{
throw new BusinessException(L["TheClientSecretIsRequiredForConfidentialApplications"]);
}
var client = await _openIddictApplicationRepository.FindByClientIdAsync(name);
var application = new AbpApplicationDescriptor {
ApplicationType = applicationType,
ClientId = name,
ClientType = type,
ClientSecret = secret,
ConsentType = consentType,
DisplayName = displayName,
ClientUri = clientUri,
LogoUri = logoUri,
};
Check.NotNullOrEmpty(grantTypes, nameof(grantTypes));
Check.NotNullOrEmpty(scopes, nameof(scopes));
if (new[] { OpenIddictConstants.GrantTypes.AuthorizationCode, OpenIddictConstants.GrantTypes.Implicit }.All(
grantTypes.Contains))
{
application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.CodeIdToken);
if (string.Equals(type, OpenIddictConstants.ClientTypes.Public, StringComparison.OrdinalIgnoreCase))
{
application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.CodeIdTokenToken);
application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.CodeToken);
}
}
if (!redirectUris.IsNullOrEmpty() || !postLogoutRedirectUris.IsNullOrEmpty())
{
application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Logout);
}
var buildInGrantTypes = new[] {
OpenIddictConstants.GrantTypes.Implicit, OpenIddictConstants.GrantTypes.Password,
OpenIddictConstants.GrantTypes.AuthorizationCode, OpenIddictConstants.GrantTypes.ClientCredentials,
OpenIddictConstants.GrantTypes.DeviceCode, OpenIddictConstants.GrantTypes.RefreshToken
};
foreach (var grantType in grantTypes)
{
if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode)
{
application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.AuthorizationCode);
application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.Code);
}
if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode ||
grantType == OpenIddictConstants.GrantTypes.Implicit)
{
application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Authorization);
}
if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode ||
grantType == OpenIddictConstants.GrantTypes.ClientCredentials ||
grantType == OpenIddictConstants.GrantTypes.Password ||
grantType == OpenIddictConstants.GrantTypes.RefreshToken ||
grantType == OpenIddictConstants.GrantTypes.DeviceCode)
{
application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Token);
application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Revocation);
application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Introspection);
}
if (grantType == OpenIddictConstants.GrantTypes.ClientCredentials)
{
application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.ClientCredentials);
}
if (grantType == OpenIddictConstants.GrantTypes.Implicit)
{
application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.Implicit);
}
if (grantType == OpenIddictConstants.GrantTypes.Password)
{
application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.Password);
}
if (grantType == OpenIddictConstants.GrantTypes.RefreshToken)
{
application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.RefreshToken);
}
if (grantType == OpenIddictConstants.GrantTypes.DeviceCode)
{
application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.DeviceCode);
application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Device);
}
if (grantType == OpenIddictConstants.GrantTypes.Implicit)
{
application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.IdToken);
if (string.Equals(type, OpenIddictConstants.ClientTypes.Public, StringComparison.OrdinalIgnoreCase))
{
application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.IdTokenToken);
application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.Token);
}
}
if (!buildInGrantTypes.Contains(grantType))
{
application.Permissions.Add(OpenIddictConstants.Permissions.Prefixes.GrantType + grantType);
}
}
var buildInScopes = new[] {
OpenIddictConstants.Permissions.Scopes.Address, OpenIddictConstants.Permissions.Scopes.Email,
OpenIddictConstants.Permissions.Scopes.Phone, OpenIddictConstants.Permissions.Scopes.Profile,
OpenIddictConstants.Permissions.Scopes.Roles
};
foreach (var scope in scopes)
{
if (buildInScopes.Contains(scope))
{
application.Permissions.Add(scope);
}
else
{
application.Permissions.Add(OpenIddictConstants.Permissions.Prefixes.Scope + scope);
}
}
if (!redirectUris.IsNullOrEmpty())
{
foreach (var redirectUri in redirectUris)
{
if (!redirectUri.IsNullOrWhiteSpace())
{
if (!Uri.TryCreate(redirectUri, UriKind.Absolute, out var uri) || !uri.IsWellFormedOriginalString())
{
throw new BusinessException(L["InvalidRedirectUri", redirectUri]);
}
if (application.RedirectUris.All(x => x != uri))
{
application.RedirectUris.Add(uri);
}
}
}
}
if (!postLogoutRedirectUris.IsNullOrEmpty())
{
foreach (var postLogoutRedirectUri in postLogoutRedirectUris)
{
if (!postLogoutRedirectUri.IsNullOrWhiteSpace())
{
if (!Uri.TryCreate(postLogoutRedirectUri, UriKind.Absolute, out var uri) || !uri.IsWellFormedOriginalString())
{
throw new BusinessException(L["InvalidPostLogoutRedirectUri", postLogoutRedirectUri]);
}
if (application.PostLogoutRedirectUris.All(x => x != uri))
{
application.PostLogoutRedirectUris.Add(uri);
}
}
}
}
if (permissions != null)
{
await _permissionDataSeeder.SeedAsync(
ClientPermissionValueProvider.ProviderName,
name,
permissions,
null
);
}
if (client == null)
{
await _applicationManager.CreateAsync(application);
return;
}
if (!HasSameRedirectUris(client, application))
{
client.RedirectUris = JsonSerializer.Serialize(application.RedirectUris.Select(q => q.ToString().RemovePostFix("/")));
client.PostLogoutRedirectUris = JsonSerializer.Serialize(application.PostLogoutRedirectUris.Select(q => q.ToString().RemovePostFix("/")));
await _applicationManager.UpdateAsync(client.ToModel());
}
if (!HasSameScopes(client, application))
{
client.Permissions = JsonSerializer.Serialize(application.Permissions.Select(q => q.ToString()));
await _applicationManager.UpdateAsync(client.ToModel());
}
}
Hi there, we are trying to update from 9.0.0 to 9.1.0 but we are facing issues.
This is our project configuration:
When we try to update our solution (or projects) to 9.1.0 through ABP Studio or through abp update, the result is that only some projects are updated (to 9.0.4 instead of 9.1.0)... the solution compiles but when we try to start it the authorization web project fails...
We have tried with the following commands as well before executing the update:
dotnet nuget locals all --clear
dotnet tool update -g Volo.Abp.Studio.Cli
abp suite remove
abp suite install
Here is the result of the abp update command:
C:\repos\d2u-cx\test>abp update
[09:59:36 INF] You are running the second generation of the ABP CLI. If you're interested in the legacy CLI, see https://abp.io/new-cli
📌 ABP CLI 0.9.25 (Beta)
[09:59:39 INF] Package: "Volo.Abp.AspNetCore-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.Autofac-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.PermissionManagement.Application-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.AspNetCore.Serilog-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.Caching.StackExchangeRedis-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.FeatureManagement.Application-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.DistributedLocking-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.SettingManagement.Application-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.Account.Pro.Public.Application-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.Account.Pro.Public.Application-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.Account.Pro.Public.HttpApi-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.Account.Pro.Admin.Application-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.Identity.Pro.Application-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.Account.Pro.Public.Web.OpenIddict-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Saas.Host.Application-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.Account.Pro.Public.Web.Impersonation-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.AuditLogging.Application-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Saas.Host.Application.Contracts-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.OpenIddict.Pro.Application-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.LanguageManagement.Application-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.TextTemplateManagement.Application-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.PermissionManagement.Application.Contracts-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.FeatureManagement.Application.Contracts-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.SettingManagement.Application.Contracts-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.Identity.Pro.Application.Contracts-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.Account.Pro.Public.Application.Contracts-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.Account.Pro.Admin.Application.Contracts-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.Caching.StackExchangeRedis-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Saas.Host.Application.Contracts-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.AuditLogging.Application.Contracts-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.DistributedLocking-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.OpenIddict.Pro.Application.Contracts-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.LanguageManagement.Application.Contracts-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.Autofac-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.TextTemplateManagement.Application.Contracts-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.Swashbuckle-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.AspNetCore.Serilog-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.AspNetCore.Mvc.Client-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.AspNetCore.Authentication.OpenIdConnect-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.Http.Client.Web-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.Http.Client.IdentityModel.Web-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.Account.Pro.Admin.Blazor.Server-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.Account.Pro.Public.Blazor.Server-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.Account.Pro.Public.Web.Impersonation-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.Identity.Pro.Blazor.Server-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.AuditLogging.Blazor.Server-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.OpenIddict.Pro.Blazor.Server-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.LanguageManagement.Blazor.Server-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Saas.Host.Blazor.Server-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.TextTemplateManagement.Blazor.Server-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.SettingManagement.Blazor.Server-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.FeatureManagement.Blazor.Server-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.Autofac-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.Caching.StackExchangeRedis-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.Emailing-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.Caching-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.PermissionManagement.Domain.Identity-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.PermissionManagement.Domain.OpenIddict-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.BackgroundJobs.Domain-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.AuditLogging.Domain-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.FeatureManagement.Domain-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.SettingManagement.Domain-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.BlobStoring.Database.Domain-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.OpenIddict.Pro.Domain-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.Identity.Pro.Domain-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.Commercial.SuiteTemplates-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.LanguageManagement.Domain-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Saas.Domain-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.TextTemplateManagement.Domain-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.BackgroundJobs.Domain.Shared-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.AuditLogging.Domain.Shared-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.FeatureManagement.Domain.Shared-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.PermissionManagement.Domain.Shared-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.SettingManagement.Domain.Shared-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.BlobStoring.Database.Domain.Shared-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.GlobalFeatures-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.OpenIddict.Pro.Domain.Shared-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.Identity.Pro.Domain.Shared-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.LanguageManagement.Domain.Shared-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Saas.Domain.Shared-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.TextTemplateManagement.Domain.Shared-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.PermissionManagement.HttpApi-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.FeatureManagement.HttpApi-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.SettingManagement.HttpApi-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.Identity.Pro.HttpApi-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.Account.Pro.Admin.HttpApi-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.Account.Pro.Public.HttpApi-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.AuditLogging.HttpApi-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.OpenIddict.Pro.HttpApi-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.LanguageManagement.HttpApi-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Saas.Host.HttpApi-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.TextTemplateManagement.HttpApi-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.PermissionManagement.HttpApi.Client-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.FeatureManagement.HttpApi.Client-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.SettingManagement.HttpApi.Client-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.Identity.Pro.HttpApi.Client-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.Account.Pro.Admin.HttpApi.Client-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.Account.Pro.Public.HttpApi.Client-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Saas.Host.HttpApi.Client-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.AuditLogging.HttpApi.Client-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.OpenIddict.Pro.HttpApi.Client-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.LanguageManagement.HttpApi.Client-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.TextTemplateManagement.HttpApi.Client-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.Autofac-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.AspNetCore.Serilog-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.Identity.AspNetCore-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.Caching.StackExchangeRedis-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.DistributedLocking-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.Swashbuckle-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.AspNetCore.Authentication.JwtBearer-v9.0.4" is up to date
[09:59:39 INF] Updating package "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonX" from v4.0.5 to v4.1.0
[09:59:39 INF] Package: "Volo.Abp.PermissionManagement.MongoDB-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.SettingManagement.MongoDB-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.BackgroundJobs.MongoDB-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.AuditLogging.MongoDB-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.FeatureManagement.MongoDB-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.BlobStoring.Database.MongoDB-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.OpenIddict.Pro.MongoDB-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.Identity.Pro.MongoDB-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Saas.MongoDB-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.LanguageManagement.MongoDB-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.TextTemplateManagement.MongoDB-v9.0.4" is up to date
[09:59:39 INF] Package: "Volo.Abp.Autofac-v9.0.4" is up to date
[09:59:39 INF] Updating package "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonX" from v4.0.5 to v4.1.0
[09:59:40 INF] Updating package "Volo.Abp.AspNetCore.Components.Server.LeptonXTheme" from v4.0.5 to v4.1.0
[09:59:40 INF] Package: "Volo.Abp.Autofac-v9.0.4" is up to date
[09:59:40 INF] Package: "Volo.Abp.Http.Client.IdentityModel-v9.0.4" is up to date
[09:59:40 INF] Package: "Volo.Abp.Autofac-v9.0.4" is up to date
[09:59:40 INF] Package: "Volo.Abp.TestBase-v9.0.4" is up to date
[09:59:40 INF] Package: "Volo.Abp.Authorization-v9.0.4" is up to date
[09:59:40 INF] Package: "Volo.Abp.BackgroundJobs.Abstractions-v9.0.4" is up to date
[09:59:40 INF] Updating package "Volo.Abp.Studio.Client.AspNetCore" from v0.9.23 to v0.9.25
[09:59:40 INF] Updating package "Volo.Abp.Studio.Client.AspNetCore" from v0.9.23 to v0.9.25
[09:59:40 INF] Updating package "Volo.Abp.Studio.Client.AspNetCore" from v0.9.23 to v0.9.25
[09:59:40 INF] Volo packages are updated in Driven2u.test solution
[09:59:40 INF] Checking installed npm global packages...
[09:59:42 INF] Updated @volo/abp.aspnetcore.mvc.ui.theme.leptonx to ~4.1.0 in \src\Driven2u.Test.AuthServer\package.json.
[09:59:43 INF] Updated @volo/account to ~9.1.0 in \src\Driven2u.Test.AuthServer\package.json.
[09:59:43 INF] Updated @volo/abp.aspnetcore.mvc.ui.theme.leptonx to ~4.1.0 in \src\Driven2u.Test.Blazor\package.json.
[09:59:43 INF] Updated @volo/account to ~9.1.0 in \src\Driven2u.Test.Blazor\package.json.
[09:59:45 INF] Updated @volo/aspnetcore.components.server.leptonxtheme to ~4.1.0 in \src\Driven2u.Test.Blazor\package.json.
[09:59:47 INF] Updated @volo/language-management to ~9.1.0 in \src\Driven2u.Test.Blazor\package.json.
[09:59:47 INF] Running Yarn on C:\repos\d2u-cx\test\src\Driven2u.Test.Blazor\
yarn install v1.22.22
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
warning "@volo/abp.aspnetcore.mvc.ui.theme.leptonx > @volo/abp.aspnetcore.mvc.ui.theme.commercial > @abp/aspnetcore.mvc.ui.theme.shared > @abp/bootstrap > bootstrap@5.3.3" has unmet peer dependency "@popperjs/core@^2.11.8".
[4/4] Building fresh packages...
success Saved lockfile.
Done in 19.42s.
[10:00:08 INF] Installing client-side packages...
[10:00:09 INF] Found 1 projects.
[10:00:09 INF] C:\repos\d2u-cx\test\src\Driven2u.Test.Blazor
[10:00:09 INF] Running Yarn on C:\repos\d2u-cx\test\src\Driven2u.Test.Blazor
yarn install v1.22.22
[1/4] Resolving packages...
success Already up-to-date.
Done in 0.09s.
[10:00:11 INF] Running Yarn on C:\repos\d2u-cx\test\src\Driven2u.Test.AuthServer\
yarn install v1.22.22
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
warning "@volo/abp.aspnetcore.mvc.ui.theme.leptonx > @volo/abp.aspnetcore.mvc.ui.theme.commercial > @abp/aspnetcore.mvc.ui.theme.shared > @abp/bootstrap > bootstrap@5.3.3" has unmet peer dependency "@popperjs/core@^2.11.8".
[4/4] Building fresh packages...
success Saved lockfile.
Done in 1.14s.
[10:00:14 INF] Installing client-side packages...
[10:00:14 INF] Found 1 projects.
[10:00:14 INF] C:\repos\d2u-cx\test\src\Driven2u.Test.AuthServer
[10:00:14 INF] Running Yarn on C:\repos\d2u-cx\test\src\Driven2u.Test.AuthServer
yarn install v1.22.22
[1/4] Resolving packages...
success Already up-to-date.
Done in 0.08s.
[10:00:16 INF] Adjusting import versions...
[10:00:17 INF] Adjusting package versions in abpsln...
Finally, the image below shows that nuget packages manager detects the 9.1.0 packages:
