22046 "Impersonation error" running SQL Server Agent job
Check the account that SQL Agent itself is running as.
See this article on the Redgate &quot;SimpleTalk&quot; website about setting up SQL Agent correctly (section under &quot;What service account to use&quot;) for more information.
Key part is this:

The core of the SQL Server Agent infrastructure is the SQL Agent
Service. This is a windows service that is responsible for executing
the different types of job steps supported by SQL Server Agent. The
service account defines the Microsoft Windows account used to execute
the SQL Agent service.
You select an account for the SQL Server Agent service by using SQL
Server Configuration Manager, where you can choose from the following
options:
Local System– This is the NT AUTHORITY\System account on the local
machine. It is a member of the Windows Administrators group on the
local machine, and therefore, is a member of the SQL Server sysadmin
fixed server role. Since the account is a Windows administrator, it
has permissions beyond what is required for running SQL Server Agent,
and it is therefore not recommended to be used as a service account.
Local Service– not recommended. Has minimum privileges on local
machine.
Network Service – not recommended. Has minimum privileges on
local machine.
Windows Domain Account – You can also choose a windows
domain account as the service account for SQL Server Agent. Using a
windows domain account and granting it the necessary permissions is
the best practice when choosing a service account. It is also
recommended that this account not be a member of the Windows
Administrators group. Further, the service account is required to be a
member of the SQL Server sysadmin fixed server role on the SQL Server
instance.

In our case, our Sql Agent was running as Local Service.  Changing it to run as Local System immediately fixed the issue.