Résoudre les erreurs d'exécution de la règle FlowCallout

Vous consultez la documentation d'Apigee et d'Apigee hybrid.
Consultez la documentation d'Apigee Edge.

SharedFlowNotFound

Code d'erreur

flow.SharedFlowNotFound

Corps de la réponse d'erreur

{
    "fault": {
        "faultstring": "Shared Flow shared_flow_name Not Found",
        "detail": {
            "errorcode": "flow.SharedFlowNotFound"
        }
    }
}

Causes possibles

Les causes possibles de cette erreur sont les suivantes :

Cause Description
Flux partagé non disponible Le flux partagé n'existe pas.
Flux partagé non déployé Le flux partagé existe, mais n'est pas déployé.

Cause : flux partagé non disponible

Dans la règle FlowCallout, si le flux partagé défini dans l'élément <SharedFlowBundle> n'existe pas dans l'environnement, cette erreur se produit.

Par exemple, si l'élément <SharedFlowBundle> de la règle FlowCallout contient un flux partagé appelé SharedFlow_Sample et si ce flux partagé n'existe pas dans l'environnement, l'erreur se produit.

Exemple de message d'erreur

{
    "fault": {
        "faultstring": "Shared Flow SharedFlow_Sample Not Found",
        "detail": {
            "errorcode": "flow.SharedFlowNotFound"
        }
    }
}

Diagnostic

  1. Identifiez le flux partagé qui n'existe pas. Vous trouverez ces informations dans l'élément faultstring de la réponse d'erreur. Par exemple, dans l'élément faultstring suivant, le nom du flux partagé est SharedFlow_Sample.

    "faultstring": "Shared Flow SharedFlow_Sample Not Found"

  2. Examinez toutes les règles d'appel de flux dans le proxy d'API spécifique où l'échec s'est produit. Vérifiez la présence d'une règle FlowCallout dans laquelle l'élément <SharedFlowBundle> est spécifié avec le nom de flux identifié à l'étape 1 ci-dessus.

    Par exemple, la règle suivante spécifie <SharedFlowBundle> comme SharedFlow_Sample, qui correspond à ce qui est contenu dans la chaîne d'erreur.

    <FlowCallout async="false" continueOnError="false" enabled="true" name="Auth-Flow-Callout">
       <DisplayName>Auth Flow Callout</DisplayName>
       <SharedFlowBundle>SharedFlow_Sample</SharedFlowBundle>
    </FlowCallout>
    
  3. Dans l'interface utilisateur, vérifiez si ce flux partagé existe dans la section Développer > Flux partagés. Si ce n'est pas le cas, c'est la cause de l'erreur. (Notez que dans la nouvelle interface utilisateur, "Flux partagés" figure dans l'onglet "Développer".)

    Par exemple, sur la capture d'écran ci-dessous, le flux partagé SharedFlow_Sample n'existe pas.

    Le flux partagé SharedFlow_Sample n'est pas répertorié dans la colonne "Flux partagé".

    Comme ce flux partagé n'existe pas, vous obtenez le code d'erreur suivant :

    flow.SharedFlowNotFound
    

Solution

Assurez-vous que le flux partagé spécifié dans l'élément <SharedFlowBundle> de la règle FlowCallout existe et est déployé dans l'environnement dans lequel la requête API est exécutée.

Pour résoudre le problème, choisissez l'une des options suivantes :

  1. Créez un flux partagé nommé SharedFlow_Sample, puis déployez-le dans l'environnement de test comme indiqué ci-dessous :

    Le flux partagé SharedFlow_Sample n'est pas répertorié dans la colonne "Flux partagé".

  2. Utilisez un flux partagé déjà déployé dans l'environnement de test dans la règle FlowCallout. Par exemple, vous pouvez spécifier SharedFlow_demo dans la règle FlowCallout.

    <FlowCallout async="false" continueOnError="false" enabled="true" name="Auth-Flow-Callout">
      <DisplayName>Auth Flow Callout</DisplayName>
      <SharedFlowBundle>SharedFlow_demo</SharedFlowBundle>
    </FlowCallout>
    

    Si vous effectuez un appel d'API dans l'environnement de test, vous ne verrez plus l'erreur, car la règle FlowCallout est également déployée dans l'environnement de test.

Cause : flux partagé non déployé

Si le flux partagé spécifié dans l'élément <SharedFlowBundle> de la règle FlowCallout n'est pas déployé, cette erreur se produit.

Par exemple, si l'élément <SharedFlowBundle> de la règle FlowCallout contient un flux partagé appelé Shared-Flow_example qui n'est pas déployé dans l'environnement spécifique dans lequel la requête API est effectuée, l'erreur se produit.

Exemple de message d'erreur

{
    "fault": {
        "faultstring": "Shared Flow Shared-Flow_example Not Found",
        "detail": {
            "errorcode": "flow.SharedFlowNotFound"
        }
    }
}

Diagnostic

  1. Identifiez le flux partagé qui n'est pas déployé. Vous trouverez ces informations dans l'élément faultstring de la réponse d'erreur. Par exemple, dans l'élément faultstring suivant, le nom du flux partagé est Shared-Flow_example.

    "faultstring": "Shared Flow Shared-Flow_example Not Found"

  2. Dans l'interface utilisateur, vérifiez si ce flux partagé est déployé.

    Par exemple, dans la capture d'écran ci-dessous, vous remarquerez que le flux partagé Shared-Flow_example existe, mais n'est pas déployé.

    Le flux partagé "Shared-Flow_example" existe, et ne comporte aucun déploiement.

    Comme ce flux partagé n'est pas déployé, vous obtenez le code d'erreur :

    flow.SharedFlowNotFound
    

Solution

Assurez-vous que le flux partagé spécifié dans l'élément <SharedFlowBundle> de la règle FlowCallout existe et est déployé dans l'environnement dans lequel la requête API est exécutée.

Pour corriger l'exemple ci-dessus, déployez le flux partagé Shared-Flow_example dans l'environnement de test. La capture d'écran suivante montre que le flux partagé SharedFlow_Sample est déployé :

Le flux partagé "SharedFlow_Sample" est déployé dans l'environnement de test.

Si vous effectuez un appel d'API dans l'environnement de test, vous ne verrez plus l'erreur, car la règle FlowCallout est également déployée dans l'environnement de test.