Aller au contenu principal

Dépannage de l'ingestion Salesforce

Cette page décrit les problèmes courants avec le connecteur d'ingestion Salesforce dans Databricks Lakeflow Connect et comment les résoudre.

Dépannage général des pipelines

Si un pipeline échoue lors de l'exécution, cliquez sur l'étape qui a échoué et confirmez si le message d'erreur fournit suffisamment d'informations sur la nature de l'erreur.

Afficher les logs d'événements du pipeline dans l'interface utilisateur

Vous pouvez également vérifier et download les logs de cluster depuis la page des détails du pipeline en cliquant sur Mettre à jour les détails dans le panneau de droite, puis sur Logs. Scannez les Logs pour les erreurs ou les exceptions.

Consultez les détails de la mise à jour du pipeline dans l'interface utilisateur.

Sélection de colonnes à l'aide de Declarative Automation Bundles

Problème :

Vous ne pouvez pas utiliser la fonctionnalité de sélection de colonnes lorsque vous créez un pipeline d'ingestion géré à l'aide de Declarative Automation Bundles.

Résolution :

Vérifiez votre version de la CLI Databricks. Si la version est inférieure à v0.251.0, réinstallez la CLI.

Échecs de connectivité réseau et de résolution DNS

Erreur :

java.net.UnknownHostException: salesforce.com

OU

Failed to connect to Salesforce: Connection refused

Cause :

Ces erreurs indiquent généralement que les politiques de réseau empêchent le connecteur de résoudre ou d'atteindre les domaines Salesforce. Cela se produit fréquemment lorsque vous utilisez le contrôle d'extraction serverless sans configuration de liste blanche appropriée.

Résolution :

Ajoutez salesforce.com à votre liste d'autorisation de politique réseau. Pour plus d'information, consultez Gérer les politiques réseau pour le contrôle de sortie serverless.

Les pare-feu et les paramètres de réseau virtuel bloquent l'accès aux services de stockage

Firewalls and virtual networks' settings may be blocking access to storage services. Please verify your Azure storage credentials or firewall exception settings

Ce problème découle de vos paramètres réseau. Pour résoudre le problème, essayez ce qui suit :

Cas

Solutions

Votre source de données se trouve dans une région différente de votre Workspace Databricks.

Créez une configuration de connectivité réseau (NCC). Assurez-vous que :

  • Il a été attaché à votre Workspace.
  • Il dispose d'une règle d'endpoint privé dédiée à votre source de données.
  • La règle d’Endpoint privé indique l’état de la connexion established.

Si vous apportez des modifications à vos paramètres NCC, redémarrez votre pipeline d'ingestion.

Cas

Solutions

Votre source de données se trouve dans une région différente de votre Workspace Databricks.

Créez une configuration de connectivité réseau (NCC). Assurez-vous que :

  • Il a été attaché à votre Workspace.
  • Il dispose d'une règle d'endpoint privé dédiée à votre source de données.
  • La règle d’Endpoint privé indique l’état de la connexion established.

Si vous apportez des modifications à vos paramètres NCC, redémarrez votre pipeline d'ingestion.

LIMIT_EXCEEDED

[SAAS_CONNECTOR_SOURCE_API_ERROR] An error occurred in the Salesforce API call. Source API type: CREATE_BULK_QUERY_JOB. Error code: LIMIT_EXCEEDED.
Try refreshing the destination table. If the issue persists, please file a ticket.

Cela se produit lorsque vous atteignez une limite d'API dans votre compte Salesforce. Dans un premier temps, attendez que les limites de votre API soient resets, puis refresh votre table de destination. Si le problème persiste, ouvrez un ticket. Vous pouvez limiter la prévalence de cette erreur en réduisant votre calendrier ou votre volume d'ingestion.

UTILISATEUR_INVALIDE

[SAAS_CONNECTOR_SOURCE_API_ERROR] An error occurred in the Salesforce API call. Source API type: CREATE_BULK_QUERY_JOB. Error code: INVALID_USER.
Try refreshing the destination table. If the issue persists, please file a ticket.

La documentation pour les développeurs de Salesforce indique que cette erreur peut se produire pour deux raisons :

  • L'utilisateur exécutant le pipeline d'ingestion n'a pas les autorisations correctes.
  • Le Job a été créé par un utilisateur différent de celui qui l’exécute actuellement.

Par conséquent, vous pouvez dépanner comme suit :

  • Veuillez valider que les identifiants de votre connexion restent corrects. Ceci peut être résolu en corrigeant les identifiants.
  • Confirmez si l'utilisateur a pu changer depuis que vous avez start à utiliser la connexion pour la première fois. Cela peut être résolu en actualisant entièrement le pipeline.

Si le problème persiste, ouvrez un ticket d'assistance.

STREAM_FAILED

STREAM_FAILED: Terminated with exception: Ingestion for object XYZ is incomplete because the Salesforce API query job took too long, failed, or was manually cancelled. To try again, you can either re-run the entire pipeline or refresh this specific destination table. If the error persists, file a ticket. SQLSTATE: XXKST

Lorsque le connecteur ingère des données de Salesforce, la query Salesforce peut renvoyer une erreur. Cela se produit pour diverses raisons (par exemple, cela prend trop de temps, cela échoue ou cela est annulé manuellement).

Cette erreur peut être transitoire, nous vous recommandons donc de start par réessayer le pipeline ou d'actualiser la table de destination spécifique. Si cela ne résout pas le problème, ouvrez un ticket d'assistance.

La table de destination contient moins de lignes que la table source

The destination table has fewer rows than the source table.

Le connecteur vise à ingérer toutes les lignes uniques de la table source.

Tout d'abord, vérifiez que la connexion a accès à toutes les lignes de la table. À partir de là, confirmez s'il y a des lignes en double dans la table source ; celles-ci ne sont pas ingérées. Si aucune de ces situations n'est la cause principale, déposez un ticket d'assistance.

Une table ne peut être possédée que par un seul pipeline

ExtendedAnalysisException: Table XYZ is already managed by pipeline ABC. A table can only be owned by one pipeline. Concurrent pipeline operations such as maintenance full refresh with conflict with each other. Please rename the table XYZ to proceed.

Chaque table de destination correspond à un seul pipeline d'ingestion. Si vous tentez de créer un pipeline qui écrit une table nommée « XYZ » dans un schéma de destination qui contient déjà une table nommée « XYZ », le pipeline échouera. Vous pouvez l'écrire dans un schéma de destination différent.

Valeurs nulles dans une colonne nouvellement ajoutée

Vous pourriez voir de nouvelles colonnes dans votre tableau pour l'une des raisons suivantes :

  • Une nouvelle colonne a été ajoutée à la table.
  • La colonne a toujours existé dans la table, mais l'utilisateur n'y a eu accès que récemment.
  • La colonne a toujours existé dans la source mais avait été précédemment exclue de l'ingestion, mais l'utilisateur l'a récemment incluse.

Ce problème se produit dans le deuxième scénario. Pour toute ligne déjà ingérée, les données auront une valeur NULL dans la nouvelle colonne. Pour remplir ces données, effectuez un full refresh de la table.

(Dans le premier scénario, la colonne est entièrement rétropolée. Dans le troisième scénario, le pipeline échoue après avoir apporté cette modification ; vous pouvez exécuter un refresh complet pour Reset les données et continuer à exécuter le pipeline.)

Table ou colonne manquante

Vous pourriez ne pas trouver un objet ou une colonne Salesforce pour les raisons suivantes :

  • Vous n'avez pas les autorisations Salesforce suffisantes pour accéder à l'objet ou à la colonne.

  • La colonne manquante représente :

    • Champ d'objet Salesforce composé (par exemple : adresse, localisation)
    • Un champ binaire base64
  • Le nom de la table dans Salesforce est différent du nom de la table que vous avez fourni. Le nom de l’objet est sensible à la casse et les objets clients ont un suffixe __c.

Échec de la création d’une connexion Salesforce à l’aide d’OAuth

Si des erreurs s'affichent lorsque vous essayez de créer une connexion à Salesforce à l'aide d'OAuth (par exemple, « invalid grant of token ») :

  1. Confirmez que les identifiants OAuth sont corrects.
  2. Si vous essayez de vous connecter à une instance sandbox dans Salesforce, confirmez que vous avez sélectionné Is Sandbox .

Échec de Job de query en masse Salesforce

Lorsque vous ingérez de gros volumes de données depuis Salesforce, le connecteur envoie des Jobs de query en masse au serveur Salesforce pour récupérer les données. Vous pourriez recevoir une erreur telle que la suivante :

Ingestion for object `<object-name>` is incomplete because the Salesforce API query job took too long, failed, or was manually canceled. To try again, you can either re-run the entire pipeline or refresh this specific destination table. If the error persists, file a ticket. Job ID: 750TU00000DEdbWYAT. Job status: <Failed|Aborted|NOT_FOUND>.

Dans cet exemple, le Job de query en masse a échoué, a été annulé ou a été supprimé du côté de Salesforce. Pour savoir pourquoi la query a échoué, vous pouvez visiter la page Bulk Data Load Jobs dans l’interface utilisateur de Salesforce :

https://<your-url>/lightning/setup/AsyncApiJobStatus/home

Le fait de relancer le pipeline pourrait résoudre le problème.

Le connecteur ingère moins de lignes que prévu

Confirmez que vous avez accès à toutes les lignes de l'objet.

Pourquoi ai-je des valeurs nulles dans une nouvelle colonne ?

Vous pourriez voir des valeurs nulles dans une nouvelle colonne lorsque :

  • Vous exécutez le pipeline avec la version originale de la table.
  • La colonne est ajoutée dans la source de données.
  • Vous exécutez le pipeline sur une nouvelle version de la table, y compris la nouvelle colonne.

Si de nouvelles colonnes sont ajoutées automatiquement après le chargement initial en raison de la sélection de colonnes Databricks ou de mises à jour de source, le connecteur remplit les lignes à partir de valeurs de curseur antérieures. Cependant, si vous recevez l'accès à une nouvelle colonne, le connecteur n'effectue pas de remplissage rétroactif.

Pour résoudre ce problème, exécutez un refresh complet de la table.

invalid_grant, jeton d’accès/refresh expiré

Cette erreur se produit dans les scénarios suivants :

  • Vous avez plus de quatre connexions pour l'utilisateur Salesforce qui s'authentifie. Confirmez que l'utilisateur qui s'authentifie ne dépasse pas la limite de connexion.
  • Votre instance Salesforce restreint l’accès aux applications connectées. Ajoutez l'application connectée Databricks à votre liste d'autorisation.
  • Vous avez révoqué l'accès de l'application connectée dans l'interface utilisateur de Salesforce.
  • Salesforce a détecté une activité anormale et a invalidé le jeton refresh.
  • Le jeton de refresh de l'application connectée a expiré.

Pour résoudre ce problème, modifiez et réautorisez la connexion. Si le problème persiste, veuillez ouvrir un ticket d'assistance.

Les valeurs des champs de formule s'affichent comme NULL (ingestion incrémentielle)

Lorsque vous utilisez l'ingestion incrémentielle de champs de formule, vous pouvez voir des valeurs NULL pour certains champs de formule. Cela se produit lorsqu’une formule utilise des fonctions ou des Opérations non prises en charge. Pour diagnostiquer, query la table de suivi des erreurs.

  1. Pour voir quels champs de formule ne sont pas pris en charge pour un objet spécifique, par exemple l'objet Account :

    SQL
    SELECT * FROM <pipeline-id>_formula_fields_error_reasons
    WHERE object_name = 'Account'

    Pour voir tous les champs de formule non pris en charge sur tous les objets :

    SQL
    SELECT object_name, formula_field_name, error_message
    FROM <pipeline-id>_formula_fields_error_reasons
    ORDER BY object_name, formula_field_name
  2. Passez en revue la liste des fonctions de formule non prises en charge dans les Limitations.

Si une formule n'est pas prise en charge, le champ affichera toujours des valeurs NULL dans la table de destination. Pour ingérer un champ non pris en charge, utilisez l'approche de snapshot par default. N'activez pas l'ingestion incrémentielle des champs de formule pour le pipeline.

Le pipeline échoue en raison d’une erreur de précision décimale (champs de formule)

Erreur :

Pipeline failed: Formula field exceeds maximum decimal precision (38, 18)

Cela se produit lorsqu'un champ de formule calcule une valeur qui dépasse la limite de précision décimale de Databricks. Les champs de formule dont les valeurs dépassent decimal(38,18) ne peuvent pas être ingérés de manière incrémentielle.

Résolution :

Désactivez l'ingestion incrémentielle de champs de formule pour ce pipeline, ou excluez le champ de formule problématique à l'aide de la configuration exclude_columns. Voir Sélectionner les colonnes à ingérer.

Erreur d'authentification Salesforce

Erreur :

We can't authorize you because of an OAuth error. For more information, contact your Salesforce administrator. OAUTH_APPROVAL_ERROR_GENERIC: An unexpected error has occurred during authentication. Please try again.

Cause :

Cela est probablement dû aux modifications que Salesforce a apportées à ses exigences en matière d'applications connectées. Historiquement, il était suffisant de consentir dans le cadre du processus d'authentification. En septembre 2025, cependant, Salesforce a commencé à restreindre l'utilisation des applications connectées non installées.

Solutions:

Si vous ne disposez pas des autorisations requises pour une première authentification réussie, un administrateur doit installer l'application connectée Databricks dans votre instance Salesforce lorsque vous créez ou réautorisez une connexion. Consultez Créer une connexion Salesforce.

Ressources supplémentaires