So a possible reason is that there are some issues in the communication with the AD to validate the login.
But rather than guessing, maybe we should try to find out what more exactly what reason the OLE DB claims for the login failure.
To illustrate, here is a sample message that I get when I'm making a failed attempt to access a linked server on one of my servers:
OLE DB provider "MSOLEDBSQL19" for linked server "SOMMERWALD" returned message "Client unable to establish connection".
OLE DB provider "MSOLEDBSQL19" for linked server "SOMMERWALD" returned message "SSL Provider: The certificate chain was issued by an authority that is not trusted.
".
Msg 7303, Level 16, State 1, Line 25
Cannot initialize the data source object of OLE DB provider "MSOLEDBSQL19" for linked server "SOMMERWALD".
In this case, it is the second message that tells me why the connection fails.
Now, it appears that you only get the first one back. I don't know SSIS, but you could check the logs more carefully to see if there is a second message.
Else an alternative is to set up an extended event session like this:
IF EXISTS (SELECT * FROM sys.server_event_sessions WHERE name = 'Exceptions')
DROP EVENT SESSION Exceptions ON SERVER
go
CREATE EVENT SESSION Exceptions ON SERVER
ADD EVENT sqlserver.error_reported(
ACTION(sqlserver.session_server_principal_name,
sqlserver.client_hostname,
sqlserver.client_app_name,
sqlserver.session_id,
sqlserver.database_name,
sqlserver.sql_text,
sqlserver.tsql_frame,
sqlserver.tsql_stack)
-- WHERE severity >= 11
-- AND NOT sqlserver.like_i_sql_unicode_string(sqlserver.client_app_name,
-- '%SQL Server Management Studio%')
)
ADD TARGET package0.event_file (SET FILENAME = N'Exceptions.xel',
MAX_FILE_SIZE = 1,
MAX_ROLLOVER_FILES = 5)
WITH (MAX_MEMORY = 512 KB,
EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS,
MAX_DISPATCH_LATENCY = 30 SECONDS,
MAX_EVENT_SIZE = 0 KB,
MEMORY_PARTITION_MODE = NONE,
TRACK_CAUSALITY = OFF,
STARTUP_STATE = ON)
GO
ALTER EVENT SESSION Exceptions ON SERVER STATE = START
This will capture all exceptions and informational message that are produced on the server, but you could add a filter, for instance for the login in question.
I discuss this session and how you view it in more detail in this article on my web site: https://www.sommarskog.se/Short%20Stories/trace-exceptions.html. In the article, I have a filter on severity, but I removed it here, since the message from the OLE DB providers are not raised as error, but only informational errors.
The article includes a view to make it easy to consume the results of the XE session.