Issues
Issues copied to clipboard
Accessing version-controlled processes/variables errors: Type specified in JSON 'Octopus.Core.Model.Projects.ActionTemplate...' is not compatible with 'Octopus.Core.Model.Projects.ActionTemplate+JsonData...'.
Severity
Blocking us completely
Version
2025.2.13027
Latest Version
I could reproduce the problem in the latest build
What happened?
After migrating from 2023.4 to 2025.2.13027, all our projects showed the issue below. I tried creating an empty Test Project with version control and this too showed the issue below. I cannot access any process or variable settings, or deploy the project.
Reproduction
- Create a new project in Octopus 2025.2.13027
- Link settings to versioning using Git
- On initialising the Git repo, the error appears
Error and Stacktrace
"Failed to execute migration 1: Type specified in JSON 'Octopus.Core.Model.Projects.ActionTemplate, Octopus.Core, Version=2025.2.13027.0, Culture=neutral, PublicKeyToken=null' is not compatible with 'Octopus.Core.Model.Projects.ActionTemplate+JsonData, Octopus.Core, Version=2025.2.13027.0, Culture=neutral, PublicKeyToken=null'. Path '$type', line 1, position 67."
Octopus.Core.Git.Schema.Exceptions.GitSchemaMigrationException: Failed to execute migration 1: Type specified in JSON 'Octopus.Core.Model.Projects.ActionTemplate, Octopus.Core, Version=2025.2.13027.0, Culture=neutral, PublicKeyToken=null' is not compatible with 'Octopus.Core.Model.Projects.ActionTemplate+JsonData, Octopus.Core, Version=2025.2.13027.0, Culture=neutral, PublicKeyToken=null'. Path '$type', line 1, position 67.
---> Newtonsoft.Json.JsonSerializationException: Type specified in JSON 'Octopus.Core.Model.Projects.ActionTemplate, Octopus.Core, Version=2025.2.13027.0, Culture=neutral, PublicKeyToken=null' is not compatible with 'Octopus.Core.Model.Projects.ActionTemplate+JsonData, Octopus.Core, Version=2025.2.13027.0, Culture=neutral, PublicKeyToken=null'. Path '$type', line 1, position 67.
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.ResolveTypeName(JsonReader reader, Type& objectType, JsonContract& contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, String qualifiedTypeName)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
at lambda_method15885(Closure, QueryContext, DbDataReader, ResultContext, SingleQueryResultCoordinator)
at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.AsyncEnumerator.MoveNextAsync()
at Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.ToListAsync[TSource](IQueryable`1 source, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.ToListAsync[TSource](IQueryable`1 source, CancellationToken cancellationToken)
at Octopus.Core.Extensions.QueryableExtensionMethods.ToListAsync[T](IQueryable`1 query, CancellationToken cancellationToken)
at Octopus.Core.Serialization.Ocl.Transformation.Transforms.StepsHydrator.BuildActionTemplateLookup(TinyType`1 entityId, CancellationToken cancellationToken) in ./source/Octopus.Core/Serialization/Ocl/Transformation/Transforms/StepsHydrator.cs:line 212
at Octopus.Core.Serialization.Ocl.Transformation.Transforms.StepsHydrator.DehydrateSteps(IHaveSteps steps, TinyType`1 entityId, CancellationToken cancellationToken) in ./source/Octopus.Core/Serialization/Ocl/Transformation/Transforms/StepsHydrator.cs:line 60
at Octopus.Core.Serialization.Ocl.Transformation.Transforms.DeploymentProcessOclTransform.TransformToOcl(DeploymentProcess model, GitDocumentContext context, OclFileInfo fileInfo, CancellationToken cancellationToken) in ./source/Octopus.Core/Serialization/Ocl/Transformation/Transforms/DeploymentProcessOclTransform.cs:line 49
at Octopus.Core.Serialization.Ocl.Transformation.Transforms.Decorators.IdToSlugOclTransformDecorator`1.TransformToOcl(T model, GitDocumentContext context, OclFileInfo fileInfo, CancellationToken cancellationToken) in ./source/Octopus.Core/Serialization/Ocl/Transformation/Transforms/Decorators/IdToSlugOclTransformDecorator.cs:line 26
at Octopus.Core.Serialization.Ocl.OclHandler.ToOcl[T](T model, GitDocumentContext context, OclFileInfo fileInfo, CancellationToken cancellationToken) in ./source/Octopus.Core/Serialization/Ocl/OclHandler.cs:line 60
at Octopus.Core.Serialization.Ocl.Documents.SingleDocumentOclFileHandler`2.WriteOclDocument(TDocument document, GitDocumentContext context, IReadWriteVirtualFileSystem fileSystem, CancellationToken cancellationToken) in ./source/Octopus.Core/Serialization/Ocl/Documents/SingleDocumentOclFileHandler.cs:line 46
at Octopus.Core.Serialization.Ocl.Documents.GitOclDocumentService.UpdateDocument[TDocument,TKey](TDocument document, GitDocumentContext context, IReadWriteVirtualFileSystem fileSystem, CancellationToken cancellationToken) in ./source/Octopus.Core/Serialization/Ocl/Documents/GitOclDocumentService.cs:line 38
at Octopus.Core.Git.Schema.Steps.ImportStep`2.ExecuteUsingDatabaseData(MigrationContext context, CancellationToken cancellationToken) in ./source/Octopus.Core/Git/Schema/Steps/ImportStep.cs:line 125
at Octopus.Core.Git.Schema.Steps.ImportStep`2.Execute(MigrationContext context, CancellationToken cancellationToken) in ./source/Octopus.Core/Git/Schema/Steps/ImportStep.cs:line 77
at Octopus.Core.Git.Schema.GitSchemaMigrator.<>c__DisplayClass5_0.<<Migrate>g__RunMigration|0>d.MoveNext() in ./source/Octopus.Core/Git/Schema/GitSchemaMigrator.cs:line 97
More Information
2024.2.9605 - works 2024.3.12985 - broken
Looks like there are a lot of EntityFramework changes in the 2024.3 release - related?
Workaround
I've reverted to 2024.2.9605