Variable Substitution not happening on ARM templates after changing environments


I’m currently working on a project which is deploying ARM templates using the in built step. We’ve made some modifications to our instance including adding some new environments and tweaking our default lifecycle, since doing this none of the variables in our JSON template are being replaced. This includes scoped and unscoped variables. Is there a step we are missing out or is there a place we can see some more detailed logging about the variable substitution process to help us in debug?


Hi Daniel,

Thanks for getting in touch.

We introduced a bug in 3.4.11 that might be what you are encountering:

If the ARM template contains a parameter with the type array and a default value then the parameters you specify in the step will not save. If it is this bug, you will see “SyntaxError: Unexpected token in JSON at position 0” in your browser’s console when you edit the Azure Resource Group step.

If you don’t think that is the issue, you can write Octopus variables to the deployment log by adding the following variables to your project:

OctopusPrintVariables True
OctopusPrintEvaluatedVariables True

That should help determine what variables Octopus is making available and why the substitution isn’t working.