Certificate error. Unable to load certificate page

As of very recently, I can’t say exactly when, we are now receiving this error on any project’s variables page and the certificate page.

Error reading row 2, column 10. badly formated directory string. Compiled reader expression: (DbDataReader reader, DocumentReaderContext context) => { Type deserializeAsType = Octopus.Core.Model.Certificate context.Column = 0 String temp0 = IIF(reader.IsDBNull(0), null, reader.GetString(0)) context.Column = 1 String temp1 = IIF(reader.IsDBNull(1), null, reader.GetString(1)) context.Column = 2 String temp2 = IIF(reader.IsDBNull(2), null, reader.GetString(2)) context.Column = 3 DateTimeOffset temp3 = IIF(reader.IsDBNull(3), default(DateTimeOffset), Convert(reader.GetValue(3), DateTimeOffset)) context.Column = 4 X500DistinguishedName temp4 = Convert(value(Octopus.Core.RelationalStorage.TypeHandlers.X500DistinguishedNameTypeHandler).ReadDatabase(reader, 4), X500DistinguishedName) context.Column = 5 ReferenceCollection temp5 = Convert(value(Octopus.Core.RelationalStorage.TypeHandlers.UntypedReferenceCollectionTypeHandler).ReadDatabase(reader, 5), ReferenceCollection) context.Column = 6 ReferenceCollection temp6 = Convert(value(Octopus.Core.RelationalStorage.TypeHandlers.UntypedReferenceCollectionTypeHandler).ReadDatabase(reader, 6), ReferenceCollection) context.Column = 7 ReferenceCollection temp7 = Convert(value(Octopus.Core.RelationalStorage.TypeHandlers.UntypedReferenceCollectionTypeHandler).ReadDatabase(reader, 7), ReferenceCollection) context.Column = 8 Nullable`1 temp8 = IIF(reader.IsDBNull(8), default(Nullable`1), Convert(reader.GetValue(8), Nullable`1)) context.Column = 9 DateTimeOffset temp9 = IIF(reader.IsDBNull(9), default(DateTimeOffset), Convert(reader.GetValue(9), DateTimeOffset)) context.Column = 10 Certificate deserializedFromJson = context.DeserializeText(reader, 10, deserializeAsType) context.Column = 12 String temp12 = IIF(reader.IsDBNull(12), null, reader.GetString(12)) Certificate result = deserializedFromJson if (result != null) { result.Id = temp0 result.Name = temp1 result.EnvironmentIds = temp5 result.TenantIds = temp6 result.TenantTags = temp7 result.Archived = temp8 result.Created = temp9 result.SpaceId = temp12 } result } badly formated directory string

The variables page loads for the projects, however the certificates page is broken and it shows no certificates.

Hi Sean
Thanks for contacting the Support team.

It appears we ran into this issue previously and it was fixed in a recent release of Octopus server. The issue appears when there is no Subject on the SSL certificate.

If you have an opportunity to upgrade this will most likely fix the issue. There are extensive docs on our site with help on upgrading:

Let us know if this works for you or if you need us to look into it further.

Kind Regards,
Paraic

This is an Octopus Cloud instance that is running v2021.1.

Hi Sean
Apologies for the misidentification. Strangely enough this issue cropped up on our self-hosted application and it was fixed some time ago.

Looks like we now have the same issue reported on Friday from another customer on the cloud and it has been escalated to the Devs to get traction on this.

I can see we already have a GitHub issue opened for this and our team is working on a fix as we speak.

I will update here as we progress to a fix for you.

Kind Regards,
Paraic

Hi Sean
Just to add the GitHub issue link for you:

Kind Regards,
Paraic

Hi Sean,

We have a fix in the works. Could you let me know the domain name of your Octopus instance so that I can get it upgraded as a priority?

Also is it ok if I log into it and make sure the fix resolves the problem?

Regards,

Rob

Thanks for the quick response. Yes you have permission, I would prefer to PM the instance name.

No worries. That one was already on our radar and got updated a few hours ago. I’ve checked the API now works again.

The problem was that some certificates do not have a IssuerName or SubjectName. Not sure how they got in there as we couldn’t upload such a certificates. It’s possible we didn’t have that validation earlier.

Rob