Issues icon indicating copy to clipboard operation
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...'.

Open davyike opened this issue 5 months ago • 1 comments

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.

Image

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

davyike avatar Aug 06 '25 07:08 davyike