Lorsqu'une requête API adressée à Simple Message Queue (anciennement MNS) échoue, le service renvoie un code d'état HTTP d'erreur (3xx, 4xx ou 5xx) ainsi qu'un corps de réponse au format XML ou texte contenant les détails de l'erreur. Cette rubrique décrit le format de la réponse d'erreur et répertorie tous les codes d'erreur avec les solutions recommandées.
Format de la réponse d'erreur
Une réponse d'erreur présente la structure XML suivante :
<?xml version="1.0" encoding="UTF-8"?>
<Error xmlns="http://mns.aliyuncs.com/doc/v1/">
<Code>InvalidArgument</Code>
<Message>Authorization header is invalid or missing.</Message>
<RequestId>04bb60e3-28aa-4706-99b0-9345d834****</RequestId>
<HostId>mns.cn-hangzhou.aliyuncs.com</HostId>
</Error>
Le tableau suivant décrit chaque élément du corps de la réponse d'erreur.
| Élément | description |
|---|---|
| Code | Le code d'erreur qui identifie le type d'erreur. |
| Message | Un message d'erreur détaillé. |
| RequestId | L'ID unique de la requête. Fournissez cet ID lorsque vous contactez le support technique. |
| HostId | L'endpoint de l'instance Simple Message Queue (anciennement MNS) qui a traité la requête. |
Pour les erreurs spécifiques à une opération, consultez la documentation de l'API correspondant à l'opération concernée.
Liste des codes d'erreur
Les tableaux suivants répertorient les codes d'erreur regroupés par catégorie. Chaque entrée inclut le code d'état HTTP, le code d'erreur, le message d'erreur renvoyé par l'API et la solution recommandée.
Erreurs d'authentification et d'autorisation
| Code d'état HTTP | Code d'erreur | Message d'erreur | Solution recommandée |
|---|---|---|---|
| 400 | InvalidAuthorizationHeader | The Authorization header format is invalid. | Le format de l'en-tête Authorization est incorrect. Vérifiez que votre AccessKey ID et votre AccessKey secret sont valides. |
| 400 | MissingAuthorizationHeader | Authorization header is required. | L'en-tête Authorization est manquant. Ajoutez l'en-tête requis à votre requête. Pour plus d'informations, consultez Common parameters. |
| 400 | InvalidDateHeader | The Date header format is invalid. | Le format de l'en-tête Date est incorrect. Pour plus d'informations, consultez Common parameters. |
| 400 | MissingDateHeader | Date header is required. | L'en-tête Date est manquant. Ajoutez l'en-tête requis à votre requête. Pour plus d'informations, consultez Common parameters. |
| 400 | InvalidDegist | The Content-MD5 you specified is invalid. | La valeur de l'en-tête Content-MD5 est invalide. Recalculez et définissez la valeur Content-MD5 correcte. |
| 403 | AccessDenied | The OwnerId that your Access Key Id associated to is forbidden for this operation. | Le compte associé à l'AccessKey ID ne dispose pas des permissions nécessaires pour cette opération. Vérifiez que vous utilisez le bon AccessKey ID et que le compte possède les permissions requises. |
| 403 | InvalidAccessKeyId | The AccessKey Id you provided is not exist. | L'AccessKey ID spécifié n'existe pas. Vérifiez que l'AccessKey ID est correct. |
| 403 | SignatureDoesNotMatch | The request signature we calculated does not match the signature you provided. Check your key and signing method. | La signature de la requête est invalide. Vérifiez votre AccessKey secret et votre méthode de signature. Pour plus d'informations, consultez Sign requests. |
| 408 | TimeExpired | The http request you sent is expired. | La différence de temps entre le client et le serveur dépasse 15 minutes. Synchronisez l'horloge de votre système local. |
Erreurs de validation de la requête
| Code d'état HTTP | Code d'erreur | Message d'erreur | Solution recommandée |
|---|---|---|---|
| 400 | InvalidRequestURL | Http request URL format invalid. | Le format de l'URL de la requête est invalide. Vérifiez l'URL par rapport à la documentation de l'API. |
| 400 | InvalidQueryString | Http request URL contains invalid querystring item "{QueryString}". | L'URL de la requête contient un paramètre de chaîne de requête invalide. Supprimez ou corrigez le paramètre invalide. |
| 400 | MalformedXML | The XML you provided was not well-formed. | Le corps de la requête XML est mal formé. Validez la syntaxe XML avant d'envoyer la requête. |
| 400 | InvalidArgument | The length of message should not be larger than MaximumMessageSize. | Le corps du message dépasse la taille maximale autorisée. Réduisez la taille du message ou augmentez la valeur MaximumMessageSize de la file d'attente. |
| 400 | InvalidArgument | A subscription's MaximumMessageSize should be greater than the topic's MaximumMessageSize! | La valeur MaximumMessageSize de l'abonnement doit être supérieure ou égale à celle du topic. Augmentez la valeur MaximumMessageSize de l'abonnement. |
| 400 | InvalidArgument | The XML you provided did not validate against our published schema, cause by {Parameter}. | Le corps de la requête XML n'est pas conforme au schéma attendu. Vérifiez le paramètre spécifié et corrigez la structure XML. |
| 400 | InvalidArgument | The value of {Parameter} should between {Min} and {Max} seconds/bytes. | La valeur d'un paramètre est hors plage. Définissez la valeur du paramètre dans la plage spécifiée. |
Remarque : Dans les messages d'erreur ci-dessus,{Parameter}représente un paramètre du corps de la requête XML,{Min}et{Max}représentent les valeurs minimale et maximale autorisées, et{QueryString}représente un paramètre de chaîne de requête dans l'URL de la requête.
Erreurs de nommage des ressources
| Code d'état HTTP | Code d'erreur | Message d'erreur | Solution recommandée |
|---|---|---|---|
| 400 | InvalidQueueName | The queue name you provided is invalid. QueueName should start with alpha and contain only alpha, digit or -. | Le nom de la file d'attente doit commencer par une lettre et contenir uniquement des lettres, des chiffres et des traits d'union (-). |
| 400 | QueueNameLengthError | Queue name length should between 1 and 255. | Le nom de la file d'attente doit comporter entre 1 et 255 caractères. |
| 400 | TopicNameInvalid | The topic name you provided is invalid. TopicName should start with alpha or digit and contain only alpha, digit or -. | Le nom du topic doit commencer par une lettre ou un chiffre et contenir uniquement des lettres, des chiffres et des traits d'union (-). |
| 400 | TopicNameLengthError | Topic name length is out of range, should be between 1 and 255. | Le nom du topic doit comporter entre 1 et 255 caractères. |
| 400 | SubscriptionNameInvalid | The subscription name you provided is invalid. SubscriptionName should start with alpha or digit and contain only alpha, digit or -. | Le nom de l'abonnement doit commencer par une lettre ou un chiffre et contenir uniquement des lettres, des chiffres et des traits d'union (-). |
| 400 | SubscriptionNameLengthError | Subscription name length is out of range, should be between 1 and 255. | Le nom de l'abonnement doit comporter entre 1 et 255 caractères. |
| 400 | EndpointInvalid | The format of endpoint you provided is invalid. | Le format de l'endpoint est invalide. Pour plus d'informations, consultez Endpoint. |
Erreurs liées aux messages et aux handles de réception
| Code d'état HTTP | Code d'erreur | Message d'erreur | Solution recommandée |
|---|---|---|---|
| 400 | MissingReceiptHandle | ReceiptHandle is required. | Incluez le paramètre ReceiptHandle dans votre requête. |
| 400 | MissingVisibilityTimeout | VisibilityTimeout is required. | Incluez le paramètre VisibilityTimeout dans votre requête. |
| 400 | ReceiptHandleError | The receipt handle you provide is not valid. | Le handle de réception est invalide. Utilisez un handle de réception valide obtenu lors d'une opération ReceiveMessage. |
| 404 | MessageNotExist | Message not exist. | Aucun message n'est disponible dans la file d'attente. La file d'attente est vide ou tous les messages sont actuellement invisibles. |
| 404 | MessageNotExist | The receipt handle you provided has expired. | Le handle de réception a expiré car le message n'a pas été traité dans le délai de visibilité. Traitez les messages dans le délai de visibilité ou augmentez la valeur du délai de visibilité. |
Erreurs de ressource introuvable et de conflit
| Code d'état HTTP | Code d'erreur | Message d'erreur | Solution recommandée |
|---|---|---|---|
| 404 | QueueNotExist | The queue name you provided does not exist. | La file d'attente spécifiée n'existe pas. Créez la file d'attente avant d'effectuer cette opération. |
| 404 | TopicNotExist | The topic name you provided does not exist. | Le topic spécifié n'existe pas. Créez le topic avant d'effectuer cette opération. |
| 404 | SubscriptionNotExist | The subscription you provided does not exist. | L'abonnement spécifié n'existe pas. Créez l'abonnement avant d'effectuer cette opération. |
| 409 | QueueAlreadyExist | The queue you want to create is already exist. | Une file d'attente portant le même nom existe déjà avec des attributs différents. Utilisez un autre nom ou assurez-vous que les attributs correspondent à ceux de la file d'attente existante. |
| 409 | TopicAlreadyExist | The topic you want to create already exists. | Un topic portant le même nom existe déjà avec des attributs différents. Utilisez un autre nom ou assurez-vous que les attributs correspondent à ceux du topic existant. |
| 409 | SubscriptionAlreadyExist | The subscription you want to create already exists. | Un abonnement portant le même nom existe déjà avec des attributs différents. Utilisez un autre nom ou assurez-vous que les attributs correspondent à ceux de l'abonnement existant. |
Erreurs de limitation de débit
| Code d'état HTTP | Code d'erreur | Message d'erreur | Solution recommandée |
|---|---|---|---|
| 400 | QpsLimitExceeded | The qps limit of the queue is exceeded. | Le nombre de requêtes par seconde (QPS) dépasse la limite. Réduisez le taux de requêtes ou contactez le support technique pour augmenter la limite QPS. |
| 429 | TooManyRequests | The request is denied by cluster flow limiter for too many requests. | La requête est limitée au niveau du cluster. Implémentez un mécanisme de backoff exponentiel et réessayez la requête. Pour plus d'informations, consultez Throttling policy. |
Erreurs serveur
| Code d'état HTTP | Code d'erreur | Message d'erreur | Solution recommandée |
|---|---|---|---|
| 500 | InternalError | Interal error. | Une erreur interne du serveur s'est produite. Réessayez la requête avec un backoff exponentiel. Si l'erreur persiste, contactez le support technique et fournissez le RequestId de la réponse. |
| 500 | InternalServerError | Interal error. | Une erreur interne du serveur s'est produite. Réessayez la requête avec un backoff exponentiel. Si l'erreur persiste, contactez le support technique et fournissez le RequestId de la réponse. |