Amazon Linux 2 Configuration Transform error

I’m trying to deploy .net core application on Amazon Linux 2.

Octopus server is 2019.3.3

I’ve did steps from https://octopus.com/docs/infrastructure/deployment-targets/linux/tentacle and everything looks good except config transform.
For testing I have minimum config that looks so:

nlog.config

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <targets >
    <target xsi:type="File" />
  </targets>
</nlog>

and nlog.release.config

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <targets xdt:Transform="Replace">
    <target  xsi:type="File" name="infoFile"/>
  </targets>
</nlog>

In step I have config transform as

nlog.release.config => nlog.config

Step is failing with error:

Transforming '<package_path>/nlog.config' using '<package_path>/nlog.release.config'. 
13:28:07   Error    |         System.Xml.XmlException: 'xsi' is an undeclared prefix. Line 1, position 9.
13:28:07   Error    |         at System.Xml.XmlTextReaderImpl.Throw(Exception e)
13:28:07   Error    |         at System.Xml.XmlTextReaderImpl.LookupNamespace(NodeData node)
13:28:07   Error    |         at System.Xml.XmlTextReaderImpl.AttributeNamespaceLookup()
13:28:07   Error    |         at System.Xml.XmlTextReaderImpl.ParseAttributes()
13:28:07   Error    |         at System.Xml.XmlTextReaderImpl.ParseElement()
13:28:07   Error    |         at System.Xml.XmlTextReaderImpl.ParseDocumentContent()
13:28:07   Error    |         at System.Xml.XmlTextReaderImpl.Read()
13:28:07   Error    |         at Octopus.Web.XmlTransform.XmlAttributePreservationDict.EnumerateAttributes(String elementStartTag, Action`3 onAttributeSpotted)
13:28:07   Error    |         at Octopus.Web.XmlTransform.XmlAttributePreservationDict.ReadPreservationInfo(String elementStartTag)
13:28:07   Error    |         at Octopus.Web.XmlTransform.XmlAttributePreservationProvider.GetDictAtPosition(Int32 lineNumber, Int32 linePosition)
13:28:07   Error    |         at Octopus.Web.XmlTransform.XmlFileInfoDocument.XmlFileInfoElement..ctor(String prefix, String localName, String namespaceUri, XmlFileInfoDocument document)
13:28:07   Error    |         at Octopus.Web.XmlTransform.XmlFileInfoDocument.CreateElement(String prefix, String localName, String namespaceURI)
13:28:07   Error    |         at System.Xml.XmlLoader.LoadNode(Boolean skipOverWhitespace)
13:28:07   Error    |         at System.Xml.XmlLoader.LoadDocSequence(XmlDocument parentDoc)
13:28:07   Error    |         at System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace)
13:28:07   Error    |         at System.Xml.XmlDocument.Load(XmlReader reader)
13:28:07   Error    |         at Octopus.Web.XmlTransform.XmlFileInfoDocument.LoadFromFileName(String filename)
13:28:07   Error    |         at Calamari.Integration.ConfigurationTransforms.ConfigurationTransformer.ApplyTransformation(String configFile, String transformFile, String destinationFile, IXmlTransformationLogger logger) in C:\buildAgent\work\e0cefbed4ad11812\source\Calamari.Shared\Integration\ConfigurationTransforms\ConfigurationTransformer.cs:line 78
13:28:07   Error    |         at Calamari.Integration.ConfigurationTransforms.ConfigurationTransformer.PerformTransform(String configFile, String transformFile, String destinationFile) in C:\buildAgent\work\e0cefbed4ad11812\source\Calamari.Shared\Integration\ConfigurationTransforms\ConfigurationTransformer.cs:line 33
13:28:07   Error    |         Could not transform the file 'nlog.config' using the pattern 'nlog.release.config'.
13:28:07   Error    |         System.Xml.XmlException: 'xsi' is an undeclared prefix. Line 1, position 9.
13:28:07   Error    |         at System.Xml.XmlTextReaderImpl.Throw(Exception e)
13:28:07   Error    |         at System.Xml.XmlTextReaderImpl.LookupNamespace(NodeData node)
13:28:07   Error    |         at System.Xml.XmlTextReaderImpl.AttributeNamespaceLookup()
13:28:07   Error    |         at System.Xml.XmlTextReaderImpl.ParseAttributes()
13:28:07   Error    |         at System.Xml.XmlTextReaderImpl.ParseElement()
13:28:07   Error    |         at System.Xml.XmlTextReaderImpl.ParseDocumentContent()
13:28:07   Error    |         at System.Xml.XmlTextReaderImpl.Read()
13:28:07   Error    |         at Octopus.Web.XmlTransform.XmlAttributePreservationDict.EnumerateAttributes(String elementStartTag, Action`3 onAttributeSpotted)
13:28:07   Error    |         at Octopus.Web.XmlTransform.XmlAttributePreservationDict.ReadPreservationInfo(String elementStartTag)
13:28:07   Error    |         at Octopus.Web.XmlTransform.XmlAttributePreservationProvider.GetDictAtPosition(Int32 lineNumber, Int32 linePosition)
13:28:07   Error    |         at Octopus.Web.XmlTransform.XmlFileInfoDocument.XmlFileInfoElement..ctor(String prefix, String localName, String namespaceUri, XmlFileInfoDocument document)
13:28:07   Error    |         at Octopus.Web.XmlTransform.XmlFileInfoDocument.CreateElement(String prefix, String localName, String namespaceURI)
13:28:07   Error    |         at System.Xml.XmlLoader.LoadNode(Boolean skipOverWhitespace)
13:28:07   Error    |         at System.Xml.XmlLoader.LoadDocSequence(XmlDocument parentDoc)
13:28:07   Error    |         at System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace)
13:28:07   Error    |         at System.Xml.XmlDocument.Load(XmlReader reader)
13:28:07   Error    |         at Octopus.Web.XmlTransform.XmlFileInfoDocument.LoadFromFileName(String filename)
13:28:07   Error    |         at Calamari.Integration.ConfigurationTransforms.ConfigurationTransformer.ApplyTransformation(String configFile, String transformFile, String destinationFile, IXmlTransformationLogger logger) in C:\buildAgent\work\e0cefbed4ad11812\source\Calamari.Shared\Integration\ConfigurationTransforms\ConfigurationTransformer.cs:line 78
13:28:07   Error    |         at Calamari.Integration.ConfigurationTransforms.ConfigurationTransformer.PerformTransform(String configFile, String transformFile, String destinationFile) in C:\buildAgent\work\e0cefbed4ad11812\source\Calamari.Shared\Integration\ConfigurationTransforms\ConfigurationTransformer.cs:line 44
13:28:07   Error    |         at Calamari.Deployment.Conventions.ConfigurationTransformsConvention.ApplyTransformations(String sourceFile, XmlConfigTransformDefinition transformation, ISet`1 transformFilesApplied, ICollection`1 transformDefinitionsApplied, ICollection`1 duplicateTransformDefinitions, Boolean diagnosticLoggingEnabled, RunningDeployment deployment) in C:\buildAgent\work\e0cefbed4ad11812\source\Calamari.Shared\Deployment\Conventions\ConfigurationTransformsConvention.cs:line 155
13:28:07   Error    |         at Calamari.Deployment.Conventions.ConfigurationTransformsConvention.ApplyTransformations(String sourceFile, IEnumerable`1 transformations, ISet`1 transformFilesApplied, IList`1 transformDefinitionsApplied, IList`1 duplicateTransformDefinitions, Boolean diagnosticLoggingEnabled, RunningDeployment deployment) in C:\buildAgent\work\e0cefbed4ad11812\source\Calamari.Shared\Deployment\Conventions\ConfigurationTransformsConvention.cs:line 120
13:28:07   Error    |         at Calamari.Deployment.Conventions.ConfigurationTransformsConvention.Install(RunningDeployment deployment) in C:\buildAgent\work\e0cefbed4ad11812\source\Calamari.Shared\Deployment\Conventions\ConfigurationTransformsConvention.cs:line 44
13:28:07   Error    |         at Calamari.Deployment.ConventionProcessor.RunInstallConventions() in C:\buildAgent\work\e0cefbed4ad11812\source\Calamari.Shared\Deployment\ConventionProcessor.cs:line 60
13:28:07   Error    |         at Calamari.Deployment.ConventionProcessor.RunConventions() in C:\buildAgent\work\e0cefbed4ad11812\source\Calamari.Shared\Deployment\ConventionProcessor.cs:line 28
13:28:07   Error    |         Running rollback conventions...
13:28:07   Error    |         'xsi' is an undeclared prefix. Line 1, position 9.
13:28:07   Error    |         System.Xml.XmlException
13:28:07   Error    |         at System.Xml.XmlTextReaderImpl.Throw(Exception e)
13:28:07   Error    |         at System.Xml.XmlTextReaderImpl.LookupNamespace(NodeData node)
13:28:07   Error    |         at System.Xml.XmlTextReaderImpl.AttributeNamespaceLookup()
13:28:07   Error    |         at System.Xml.XmlTextReaderImpl.ParseAttributes()
13:28:07   Error    |         at System.Xml.XmlTextReaderImpl.ParseElement()
13:28:07   Error    |         at System.Xml.XmlTextReaderImpl.ParseDocumentContent()
13:28:07   Error    |         at System.Xml.XmlTextReaderImpl.Read()
13:28:07   Error    |         at Octopus.Web.XmlTransform.XmlAttributePreservationDict.EnumerateAttributes(String elementStartTag, Action`3 onAttributeSpotted)
13:28:07   Error    |         at Octopus.Web.XmlTransform.XmlAttributePreservationDict.ReadPreservationInfo(String elementStartTag)
13:28:07   Error    |         at Octopus.Web.XmlTransform.XmlAttributePreservationProvider.GetDictAtPosition(Int32 lineNumber, Int32 linePosition)
13:28:07   Error    |         at Octopus.Web.XmlTransform.XmlFileInfoDocument.XmlFileInfoElement..ctor(String prefix, String localName, String namespaceUri, XmlFileInfoDocument document)
13:28:07   Error    |         at Octopus.Web.XmlTransform.XmlFileInfoDocument.CreateElement(String prefix, String localName, String namespaceURI)
13:28:07   Error    |         at System.Xml.XmlLoader.LoadNode(Boolean skipOverWhitespace)
13:28:07   Error    |         at System.Xml.XmlLoader.LoadDocSequence(XmlDocument parentDoc)
13:28:07   Error    |         at System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace)
13:28:07   Error    |         at System.Xml.XmlDocument.Load(XmlReader reader)
13:28:07   Error    |         at Octopus.Web.XmlTransform.XmlFileInfoDocument.LoadFromFileName(String filename)
13:28:07   Error    |         at Calamari.Integration.ConfigurationTransforms.ConfigurationTransformer.ApplyTransformation(String configFile, String transformFile, String destinationFile, IXmlTransformationLogger logger) in C:\buildAgent\work\e0cefbed4ad11812\source\Calamari.Shared\Integration\ConfigurationTransforms\ConfigurationTransformer.cs:line 78
13:28:07   Error    |         at Calamari.Integration.ConfigurationTransforms.ConfigurationTransformer.PerformTransform(String configFile, String transformFile, String destinationFile) in C:\buildAgent\work\e0cefbed4ad11812\source\Calamari.Shared\Integration\ConfigurationTransforms\ConfigurationTransformer.cs:line 44
13:28:07   Error    |         at Calamari.Deployment.Conventions.ConfigurationTransformsConvention.ApplyTransformations(String sourceFile, XmlConfigTransformDefinition transformation, ISet`1 transformFilesApplied, ICollection`1 transformDefinitionsApplied, ICollection`1 duplicateTransformDefinitions, Boolean diagnosticLoggingEnabled, RunningDeployment deployment) in C:\buildAgent\work\e0cefbed4ad11812\source\Calamari.Shared\Deployment\Conventions\ConfigurationTransformsConvention.cs:line 155
13:28:07   Error    |         at Calamari.Deployment.Conventions.ConfigurationTransformsConvention.ApplyTransformations(String sourceFile, IEnumerable`1 transformations, ISet`1 transformFilesApplied, IList`1 transformDefinitionsApplied, IList`1 duplicateTransformDefinitions, Boolean diagnosticLoggingEnabled, RunningDeployment deployment) in C:\buildAgent\work\e0cefbed4ad11812\source\Calamari.Shared\Deployment\Conventions\ConfigurationTransformsConvention.cs:line 120
13:28:07   Error    |         at Calamari.Deployment.Conventions.ConfigurationTransformsConvention.Install(RunningDeployment deployment) in C:\buildAgent\work\e0cefbed4ad11812\source\Calamari.Shared\Deployment\Conventions\ConfigurationTransformsConvention.cs:line 44
13:28:07   Error    |         at Calamari.Deployment.ConventionProcessor.RunInstallConventions() in C:\buildAgent\work\e0cefbed4ad11812\source\Calamari.Shared\Deployment\ConventionProcessor.cs:line 60
13:28:07   Error    |         at Calamari.Deployment.ConventionProcessor.RunConventions() in C:\buildAgent\work\e0cefbed4ad11812\source\Calamari.Shared\Deployment\ConventionProcessor.cs:line 50
13:28:07   Error    |         at Calamari.Commands.DeployPackageCommand.Execute(String[] commandLineArguments) in C:\buildAgent\work\e0cefbed4ad11812\source\Calamari\Commands\DeployPackageCommand.cs:line 128
13:28:07   Error    |         at Calamari.Program.Execute(String[] args) in C:\buildAgent\work\e0cefbed4ad11812\source\Calamari\Program.cs:line 91
13:28:07   Verbose  |         Disposing SFTP connection...
13:28:07   Verbose  |         Disposing SSH connection...
13:28:07   Verbose  |         Updating manifest with output variables
13:28:07   Verbose  |         Updating manifest with action evaluated variables
13:28:07   Fatal    |         The remote script failed with exit code 100

Adding

Octopus.Action.Package.EnableDiagnosticsConfigTransformationLogging True

not provides additional logging

Windows deployment for same config working without exceptions for same transform.
How can I fix it?

Hi @scvot66,

Thanks for getting in touch and sending through all of that helpful information. I’m sorry to hear you’re hitting this strange issue. I see the xsi namespace is declared with xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" so the error System.Xml.XmlException: 'xsi' is an undeclared prefix is certainly unexpected.

I haven’t had any luck reproducing this error, however. I was running through a test in my local instance (2020.2.11), so I’m confident the issue you’re facing is something that has been addressed/fixed since 2019.3.3. Would you be willing/able to upgrade at earliest convenience and let me know if that fixes this issue in your case?

I look forward to hearing back!

Best regards,

Kenny

This topic was automatically closed 31 days after the last reply. New replies are no longer allowed.

Hi @scvot66,

This issue has been fixed in 2020.4 Octopus version.

Regards
John