Respuestas de error de Microsoft Graph y tipos de recursos

Los errores de Microsoft Graph se devuelven mediante códigos de estado HTTP estándar y un objeto de respuesta de error JSON.

Códigos de estado HTTP

La siguiente tabla enumera y describe los códigos de estado HTTP que se pueden devolver.

Código de estado Mensaje de estado Descripción
400 Solicitud incorrecta (Bad Request) No se puede procesar la solicitud porque tiene un formato incorrecto o incorrecto.
401 No autorizado (Unauthorized) La información de autenticación requerida no se encuentra o no es válida para el recurso.
402 Pago requerido No se han cumplido los requisitos de pago de la API.
403 Prohibido Se denegó el acceso al recurso solicitado. Es posible que el usuario no tenga suficiente permiso o que no tenga una licencia necesaria.

Importante: Si se aplican directivas de acceso condicional a un recurso, se puede devolver un HTTP 403; Forbidden error=insufficient_claims mensaje. Para obtener más información sobre Microsoft Graph y el acceso condicional, consulte Guía para desarrolladores para Microsoft Entra acceso condicional.
404 No encontrado (Not Found) El recurso solicitado no existe.
405 Método no permitido (Method Not Allowed) El método HTTP de la solicitud no se permite en el recurso.
406 No es aceptable (Not Acceptable) Este servicio no es compatible con el formato solicitado en el encabezado Accept.
409 Conflict El estado actual entra en conflicto con lo que la solicitud espera. Por ejemplo, la carpeta principal especificada podría no existir.
410 Pasado (Gone) El recurso solicitado ya no está disponible en el servidor.
411 Longitud requerida (Length Required) Se requiere un encabezado Content-Length en la solicitud.
412 Error de condición previa (Precondition Failed) Una condición previa proporcionada en la solicitud (como un encabezado if-match) no coincide con el estado actual del recurso.
413 Entidad de solicitud demasiado grande (Request Entity Too Large) El tamaño de la solicitud supera el límite máximo.
415 Tipo de medio no compatible (Unsupported Media Type) El tipo de contenido de la solicitud es un formato que no es compatible con el servicio.
416 El rango solicitado no se cumple (Requested Range Not Satisfiable) El rango de bytes especificado no es válido o no está disponible.
422 Entidad no procesable (Unprocessable Entity) No se puede procesar la solicitud porque es semánticamente incorrecta.
423 Bloqueado El recurso al que está accediendo está bloqueado.
429 Demasiadas solicitudes (Too Many Requests) La aplicación cliente se ha limitado y no debe intentar repetir la solicitud hasta que haya transcurrido un período de tiempo.
500 Error interno del servidor (Internal Server Error) Se produjo un error interno del servidor al procesar la solicitud.
501 No implementado (Not Implemented) La característica solicitada no se implementó.
503 Servicio no disponible El servicio no está disponible temporalmente por mantenimiento o está sobrecargado. Puede repetir la solicitud después de un retraso, la longitud de los cuales puede especificarse en un encabezado Retry-After.
504 Tiempo de espera de puerta de enlace (Gateway Timeout) El servidor, mientras actúa como proxy, no recibió una respuesta oportuna del servidor ascendente al que necesitaba acceder al intentar completar la solicitud.
507 Almacenamiento insuficiente (Insufficient Storage) Se ha alcanzado la cuota de almacenamiento máxima.
509 Ha superado el límite de ancho de banda Su aplicación se ha limitado por superar el extremo máximo de ancho de banda. Su aplicación puede reintentar la solicitud de nuevo cuando haya transcurrido más tiempo.

La respuesta de error es un solo objeto JSON que contiene una propiedad única denominada error. Este objeto incluye todos los detalles del error. Puede usar la información devuelta aquí en lugar o además del código de estado HTTP. A continuación se muestra un ejemplo de un cuerpo completo de error JSON.

{
  "error": {
    "code": "badRequest",
    "message": "Uploaded fragment overlaps with existing data.",
    "innerError": {
      "code": "invalidRange",
      "request-id": "request-id",
      "date": "date-time"
    }
  }
}

Tipo de recurso de error

El recurso de error se devuelve cuando se produce un error en el procesamiento de una solicitud.

Las respuestas de error siguen la definición de las directrices de la API REST de Microsoft.

Representación JSON

El recurso de error se compone de un único recurso:

{
  "error": {
    "code": "string",
    "message": "string",
    "innererror": { 
      "code": "string"
    },
    "details": []
  }
}
Nombre de la propiedad Valor Descripción
code cadenas Una cadena de código de error para el error que se ha producido
message string Mensaje listo para desarrolladores sobre el error que se produjo. Esto no debe mostrarse directamente al usuario.
innererror objeto error Opcional. Un objeto de error adicional que podría ser más específico que el error de nivel superior.
details error object Opcional. Lista de objetos de error adicionales que podrían proporcionar un desglose de varios errores encontrados al procesar la solicitud.

Propiedades

La propiedad de código contiene un valor legible por la máquina en el que puede tomar una dependencia en el código.

El objeto innererror podría contener de forma recursiva más objetos innererror con propiedades de códigos de error adicionales más específicas. Al controlar un error, las aplicaciones deben recorrer en bucle todos los códigos de error anidados que están disponibles y usar el más detallado que comprendan.

La propiedad message es un valor legible que describe la condición de error. No dependa del contenido de este valor en el código.

La propiedad message de la raíz contiene un mensaje de error diseñado para que el desarrollador lea. Los mensajes de error no se localizan y no deben mostrarse directamente al usuario. Al controlar los errores, el código no debe depender de los valores de propiedad del mensaje porque pueden cambiar en cualquier momento y suelen contener información dinámica específica de la solicitud con errores. Solo debe codificar en los códigos de error devueltos en las propiedades de código .

La propiedad details es una matriz opcional de objetos de error que tienen el mismo formato JSON que el objeto de error de nivel superior. En el caso de una solicitud que se compone de varias operaciones, como una operación masiva o por lotes, podría ser necesario devolver un error independiente para cada operación. En este caso, la lista de detalles se rellena con estos errores individuales.