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"
}
8 Answer(s)
-
0
Based on your description and the error logs, the issue is related to ABP Suite's handling of the solution configuration, specifically a
NullReferenceException
when accessing theMigrationsMigrationsDbContext
property. This is likely caused by a missing or corrupted configuration in the ABP Suite'sappsettings.json
for your solution, which can happen if the configuration file is out of sync or incomplete on some developer machines.Your workaround—manually updating the configuration in ABP Suite's
appsettings.json
with the correct paths and values—directly addresses this. This ensures that ABP Suite can properly locate all required projects and context files, preventing the null reference error.Recommended Steps:
- Ensure all developers have the same, up-to-date configuration block for the solution in their ABP Suite
appsettings.json
. - Double-check that all paths in the configuration are correct and point to valid locations on each developer's machine.
- If the error recurs, remove the solution entry from
appsettings.json
and re-add it using the working configuration.
For more details on configuring and troubleshooting ABP Suite solution settings, refer to the official documentation:
This approach aligns with ABP Suite's expected configuration management and should resolve the issue for all team members.
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.
- Ensure all developers have the same, up-to-date configuration block for the solution in their ABP Suite
-
0
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.
-
0
[nacho] said: 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.
Hi, sorry for the bot's response, it sometimes helps :)
Thanks for the detailed information and sharing the
appsettings.json
file with the error logs, this helps a lot to identify the problem.[ERR] Error getting value from 'MigrationsMigrationsDbContext' on 'Volo.Abp.Suite.Models.Solution'.
Before you update the
appsettings.json
file, do you remember the value of theMigrationsMigrationsDbContext
field? Also, I will create a tiered solution and try to understand the problem better, but by any chance, can you also share the not-updated (default) values of theappsettings.json
file, so I can see the changes and check at the code level? (I'll try to identify at which point ABP Suite is currently unable to determine the related path)Regards.
-
0
[EngincanV] said:
[nacho] said: 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.
Hi, sorry for the bot's response, it sometimes helps :)
Thanks for the detailed information and sharing the
appsettings.json
file with the error logs, this helps a lot to identify the problem.[ERR] Error getting value from 'MigrationsMigrationsDbContext' on 'Volo.Abp.Suite.Models.Solution'.
Before you update the
appsettings.json
file, do you remember the value of theMigrationsMigrationsDbContext
field? Also, I will create a tiered solution and try to understand the problem better, but by any chance, can you also share the not-updated (default) values of theappsettings.json
file, so I can see the changes and check at the code level? (I'll try to identify at which point ABP Suite is currently unable to determine the related path)Regards.
No, sorry... we don't have the previous
appsettings.json
. When we encountered the issue, we removed the solution from ABP Suite and tried to add it again (also without success). What we can share with you (preferably in an online meeting) are the error messages and logs we get when trying to add or open the solution in ABP Suite (after removing the solution from ABP Suite). That might be a quicker way for you to troubleshoot the issue. -
0
[nacho] said:
[EngincanV] said:
[nacho] said: 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.
Hi, sorry for the bot's response, it sometimes helps :)
Thanks for the detailed information and sharing the
appsettings.json
file with the error logs, this helps a lot to identify the problem.[ERR] Error getting value from 'MigrationsMigrationsDbContext' on 'Volo.Abp.Suite.Models.Solution'.
Before you update the
appsettings.json
file, do you remember the value of theMigrationsMigrationsDbContext
field? Also, I will create a tiered solution and try to understand the problem better, but by any chance, can you also share the not-updated (default) values of theappsettings.json
file, so I can see the changes and check at the code level? (I'll try to identify at which point ABP Suite is currently unable to determine the related path)Regards.
No, sorry... we don't have the previous
appsettings.json
. When we encountered the issue, we removed the solution from ABP Suite and tried to add it again (also without success). What we can share with you (preferably in an online meeting) are the error messages and logs we get when trying to add or open the solution in ABP Suite (after removing the solution from ABP Suite). That might be a quicker way for you to troubleshoot the issue.Thanks for the update. Actually, I've created a tiered application just before and will try to reproduce it on my side. If i can't do it, I might need your help, I'll let you know.
Thanks again. Regards.
-
0
Hi! I just reopened what the bot closed :) Just a reminder of something that I realized and wrote in my fist comment: "I do not see the option to get the solution configuration with ABP Studio, the button is not visible now" I created a new solution with ABP Studio and the option "Solution Configuration" is available
-
0
[nacho] said: Hi! I just reopened what the bot closed :) Just a reminder of something that I realized and wrote in my fist comment: "I do not see the option to get the solution configuration with ABP Studio, the button is not visible now" I created a new solution with ABP Studio and the option "Solution Configuration" is available
Hi, this feature was added with v0.7.6+, and it basically puts configuration into your
*.abpsln
file while creating an application (section name:creatingStudioConfiguration
). So, probably your solution was created before v0.7.6 and this is the reason why you don't see the "Solution Configuration" context menu item. -
0
[EngincanV] said:
[nacho] said: Hi! I just reopened what the bot closed :)
Just a reminder of something that I realized and wrote in my fist comment: "I do not see the option to get the solution configuration with ABP Studio, the button is not visible now"
I created a new solution with ABP Studio and the option "Solution Configuration" is available
Hi, this feature was added with v0.7.6+, and it basically puts configuration into your
*.abpsln
file while creating an application (section name:creatingStudioConfiguration
). So, probably your solution was created before v0.7.6 and this is the reason why you don't see the "Solution Configuration" context menu item.OK! this is our abpsln file, in case it helps:
{ "id": "fff39d08-98bc-4ab2-9e28-c05a141732a2", "template": "empty", "modules": { "Driven2u.Cpaas": { "path": "Driven2u.Cpaas.abpmdl" } }, "runProfiles": { "Default": { "path": "etc/abp-studio/run-profiles/Default.abprun.json" } } }