Agent Disabled During Design Update

I encountered the following fun when deploying Brian Green’s Domino TeamMailbox recently. The concept applies to any design, not just the TeamMailbox.

Designer: Agent ‘New Mail Reminder’ in ‘mailin\xyz.nsf’ disabled during Design Update from template ‘teambox3.ntf’. Agent signer ‘Server1/servers/abc’.: Enabled status can be preserved only on the server where the agent is scheduled to run or, for mail agents, on the home mail server. Enabled status cannot be preserved if ‘-Any server-‘ is specified for the agent.

I found the following in IBM Lotus Domino Administrator Help 8.x >

Updating the design of an enabled agent
In pre-8.0 releases of IBM Lotus Domino , when a design update for enabled agents occurred, the agents were disabled and stopped running. This occurred because there was no mechanism to update the agent’s design and retain the original signature of the agent. In Domino 8, design update can update many enabled agents without disabling the agents.

In Domino 8, design update preserves the identity of the agent owner in the “On Behalf” field and re-signs the agent with the server ID. The agent’s enabled status is preserved only if the original agent owner has the rights to run agents and if the agent is scheduled to run on the server on which the design update is performed. The server has explicit rights to run agents only on itself. If the agent’s enabled status cannot be preserved, the design update is performed and a warning message is generated and sent to the server console as well as to the Domino Domain Manager.

You may see the warning messages shown in the examples below depending on who signs the agent.

Examples
In this example, the agent was signed by the server, ServerA/DomainA, which did not have rights to run agents on the server Test/Acme. Design update updated the agent design and left the agent disabled.

Warning generated on server TEST/ACME:
Designer: Agent ‘OutOfOffice’ in ‘mail\rooks.nsf’ disabled during Design Update from template ‘mail8.ntf’. Agent signer ‘ServerA/DomainA.: Users without rights to sign ‘On Behalf’ agents can only run agents on their own behalf.
In this example, the agent was specified to run on -any server-; therefore, its enabled state could not be preserved because it could not be signed with the server ID Test/DomainB ID. If the agent was signed with Test/DomainB ID, the agent would not run on any server other than Test/DomainB, which was not the intention of the agent designer. Design update updated the design of the agent and left it disabled.

Warning message generated on server Test/DomainB:
Designer: Agent ‘LotusInboxCleanup’ in ‘AdminSurvey2007.nsf’ disabled during Design Update from template ‘mail8.ntf’. Agent signer ‘Lotus Notes Template Development/Lotus Notes’.: Enabled status can be preserved only on the server where the agent is scheduled to run or, for mail agents, on the home mail server. Enabled status cannot be preserved if ‘-Any server-‘ is specified for the agent.

Presumed Solution
So, the solution would seem to be editing (signing) the agent with an ID with proper rights AND specifying a server for the agent. Using ‘-Any server-‘ is a no no.