Replication Jobs fail with error code 0x6fd
Doing Replication demonstrations on my laptop I’ll notice a Distribution Agent is not running. I’ll start the Agent and Refresh, but it still shows as Not Running.
Looking at the Agent Details it appears it was running then stopped. Yet when I start synchronizing the status never changes and the DETAILS don’t update. The Last Action Time is still days old.
For this I need to go to SSMS and check the JOB history. From the DETAILS window select the Distribution Agent Job Properties.
The Job Properties Windows shows me the NAME of the Job. I’ll need this when I go to SSMS SQL Agent.
Under SQL Server Agent, JOB, find the same JOB, right-click, display View Job History.
The History provides details as to why the Replication Agent JOB would not start.
[SQLSTATE 42000] (Error 15404)) is a generic Replication Agent failure. Key is in the text of the error which says
Could not obtain information about Windows NT group/user ‘corpdomain\chrissk’, error code 0x6fd.
Back at the JOB properties screen I see the JOB is OWNED by ‘corpdomain\chrissk’. If SQL Agent can’t verify the Job Owner it doesn’t know what security rights the account has and therefore can’t start the JOB.
Some Background
Why can’t SQL Agent verify corpdomain\chrissk, reason, I’m disconnected from corpdomain network. This can also occur if the computer is unable to reach the corpdomain domain controller. To cross verify, you can look at the list of users in Windows “Users and Groups”. Do you see users with SIDs and not names? This also occurs when the computer can’t connect to the domain to verify the domain users.
Well if the computer can’t verify domain accounts, good change SQL Agent can’t verify either. If the SQL Server is on a domain, time to connect your network support team to find why computer can’t authenticate the domain users.
Resolution
For me, the solution is easy. Since my laptop demos are self-contained and don’t need network access, I need to changed my Job OWNER to an account that always exists and can be validated even when not connected to the domain.