Hello Anil !
Thank you for posting on Microsoft Learn.
That error means the driver is trying to do an RSA (PEM) signature and OpenSSL can’t decode the key it was given. In practice, this happens when the Xero linked service is (accidentally) behaving like OAuth 1.0a (which used RSA keys) instead of pure OAuth 2.0 or when a PEM-looking value is pasted where a client secret should go.
You need to force OAuth 2.0 in the linked service JSON where you open your Xero linked service (code view) and verify:
"type": "Xero",
"typeProperties": {
"connectionProperties": {
"host": "api.xero.com",
"authenticationType": "OAuth_2.0",
"consumerKey": { "type": "SecureString", "value": "<CLIENT_ID>" },
"privateKey": { "type": "SecureString", "value": "<CLIENT_SECRET>" },
"tenantId": "<TENANT_ID>",
"refreshToken": { "type": "SecureString", "value": "<REFRESH_TOKEN>" }
}
}
in OAuth 2.0 the field named privateKey is actually the client secret, just a plain string.
Don’t paste any -----BEGIN ... PRIVATE KEY----- blocks there, those are only for OAuth 1.0a and will trigger the RSA/DECODER error.
https://learn.microsoft.com/en-us/azure/data-factory/connector-xero
If the dropdown was set to OAuth 1.0a at any point, the driver will try to parse a PEM and sign with RSA. Switch to OAuth 2.0 and re-save. The Xero connector doc explicitly distinguishes the two and shows PEM only for OAuth 1.0a.