Macros Un-signing themselves

J V asked on March 30, 2017 21:15


My team and I upgraded from Kentico 9 -> 10 (No Hotfixes as of this posting) a little over 2 weeks ago. The site has been running fine until last night when our client contacted us that a registration form had stopped working. Upon further inspecting we noticed our event log was full of MacroResolver errors containing the below error; "Security check of the expression '....' didn't pass. The expression was signed by user ''. Remove the signature and re-save the expression by a user with proper permissions."

Checking the system Macro signatures we came to see all of our signatures were unsigned! Our Global Administrator account, which is the signing account of all macros, obviously has not been deleted. No files were changed via Staging App, even though our web.config on both servers have matching 'CMSHashStringSalt' values, or by any other means.

Our issue is similar to the ones posted in the below devnet questions from a few years back;

Has anyone else experienced this random removal of signatures on macros? Is there a known culprit? Any help would be greatly appreciated

Recent Answers

Brenden Kehren answered on March 31, 2017 02:44

Typically with the error you posted it's because a user has been removed from the site or the user who initially signed the macro on a "staging" server is not on the "production" server.

0 votesVote for this answer Mark as a Correct answer

J V answered on March 31, 2017 17:22

Hey Brenden,

Thank you for the quick reply but unfortunately we highly doubt that situation as both accounts use the "administrator" account for signing all macros. I just double checked System -> Macros -> Report and can confirm this.

0 votesVote for this answer Mark as a Correct answer

Brenden Kehren answered on March 31, 2017 17:56

The issue resides with the user who originally signed the macro as the error states: "The expression was signed by user ''." There is no user with the username of '' so it will error out every time. You need to specifically find that macro causing the error and remove it, then add it back again with someone who has privileges or don't sign the macro by using a @ at the end vs. a #. For instance {% MyMacro.GoesHere @%} The @ will make the macro unsigned.

0 votesVote for this answer Mark as a Correct answer

   Please, sign in to be able to submit a new answer.