Errores
conflict
409. El estado actual del recurso impide la operación, una petición con la misma Idempotency-Key sigue en curso, u otra escritura retenía el recurso, o la base de datos abortó la transacción por un conflicto transitorio, así que no se escribió nada. La causa está en errors[0].: invalid_state para el primer caso, in_progress para el segundo y lock_timeout para el tercero. detail no sirve para decidir. HTTP 409.
- Estado HTTP
- 409
- Tipo del problema
- https://docs.filmo.io/errors/conflict
Ejemplo
Cuándo ocurre
409. El estado actual del recurso impide la operación, una petición con la misma Idempotency-Key sigue en curso, u otra escritura retenía el recurso, o la base de datos abortó la transacción por un conflicto transitorio, así que no se escribió nada. La causa está en errors[0].: invalid_state para el primer caso, in_progress para el segundo y lock_timeout para el tercero. detail no sirve para decidir.
Qué hacer
Ramifica según errors[0].. Para in_progress y lock_timeout, espera y envía de nuevo la misma petición con la misma Idempotency-Key; con backoff para lock_timeout. Si un 409 in_progress persiste unos dos minutos, la reserva se considera abandonada y el siguiente intento con la misma clave se ejecuta, así que lee el recurso antes de reintentar. Para invalid_state, no reintentes sin cambios: lee el recurso y, si la petición aún encaja, puedes enviarla de nuevo; si no, cámbiala para que encaje con su estado; por ejemplo, archivar un pedido que no es borrador ni está cancelado, anular la reserva de un pedido cancelado o cancelar uno ya recepcionado.
Reintento
Reintentar con la misma clave409 conflict · in_progress · Idempotency-Key: Sí
errors[0].escode in_progress: otra petición con la mismaIdempotency-Keysigue en curso. Espera y reintenta con la misma clave (espera exponencial, hasta 3 veces): recibirás su respuesta guardada cuando termine.Reintentar con espera exponencial409 conflict · lock_timeout
errors[0].escode lock_timeout: otra escritura condicional retuvo el recurso más de 5 s. Reintenta con la misma clave y espera exponencial, hasta 3 veces; si persiste, vuelve a leer el recurso.Leer antes el recurso409 conflict · invalid_state
errors[0].escode invalid_state: el estado del recurso impide la operación (una violación de unicidad, una línea de un lote atómico). No reintentes: esperar no lo arregla nunca. Vuelve a leer el recurso y decide según su estado actual.
Campos de errors[]
Código estable del error de campo (required, must_not_be_null, invalid_type, invalid_value, too_small, too_big, unknown_field, invalid_format, not_found, must_be_after…). En un 409 conflict indica la causa: in_progress (otra petición con la misma Idempotency-Key sigue en curso), lock_timeout (otra escritura condicional retuvo el recurso durante más de cinco segundos) o invalid_state (el estado del recurso prohíbe la operación).
Lo devuelven
98 operaciones
POST /api/v1/contacts— Crear un contactoPATCH /api/v1/contacts/{contactId}— Actualizar un contactoDELETE /api/v1/contacts/{contactId}— Eliminar un contactoPATCH /api/v1/contacts/{contactId}/preferences— Actualizar las condiciones comerciales de un contactoPOST /api/v1/contacts/{contactId}/addresses— Añadir una dirección a un contactoPATCH /api/v1/contacts/{contactId}/addresses/{addressId}— Actualizar una dirección de un contactoDELETE /api/v1/contacts/{contactId}/addresses/{addressId}— Quitar una dirección de un contactoPOST /api/v1/contacts/{contactId}/related-contacts— Relacionar dos contactosPATCH /api/v1/contacts/{contactId}/related-contacts/{relatedContactId}— Cambiar el rol de una relaciónDELETE /api/v1/contacts/{contactId}/related-contacts/{relatedContactId}— Quitar la relación entre dos contactosPOST /api/v1/items— Crear un artículoPATCH /api/v1/items/{itemId}— Actualizar un artículoDELETE /api/v1/items/{itemId}— Eliminar un artículoPATCH /api/v1/items/{itemId}/physical-properties— Actualizar peso y dimensionesPATCH /api/v1/items/{itemId}/pricing— Actualizar los precios de un artículoPOST /api/v1/availability/check— Comprobar la disponibilidad de artículosPOST /api/v1/orders— Crear un pedidoPATCH /api/v1/orders/{orderId}— Actualizar la cabecera de un pedidoPOST /api/v1/projects— Crear un proyectoPUT /api/v1/projects/{projectId}/archive— Archivar o restaurar un proyectoPATCH /api/v1/projects/{projectId}— Actualizar un proyectoPATCH /api/v1/serialized-items/{serializedItemId}— Actualizar una unidad serializadaPATCH /api/v1/spaces/{spaceId}— Actualizar un almacén o espacioDELETE /api/v1/spaces/{spaceId}— Eliminar un espacioPUT /api/v1/spaces/{spaceId}/amenities— Reemplazar las comodidades y el equipamientoPATCH /api/v1/spaces/{spaceId}/pricing— Actualizar los precios de un espacioPOST /api/v1/repair-tickets— Crear un parte de reparaciónPATCH /api/v1/repair-tickets/{ticketId}— Actualizar un ticket de reparaciónPOST /api/v1/vehicles— Crear un vehículoPATCH /api/v1/vehicles/{vehicleId}— Actualizar un vehículoDELETE /api/v1/vehicles/{vehicleId}— Eliminar un vehículoPOST /api/v1/staff— Crear un miembro del personalPATCH /api/v1/staff/{staffId}— Actualizar un miembro del personalDELETE /api/v1/staff/{staffId}— Eliminar un miembro del personalPATCH /api/v1/subrents/{subrentId}— Actualizar un subalquilerPATCH /api/v1/purchase-orders/{purchaseOrderId}— Actualizar una orden de compraPOST /api/v1/staff/availability— Comprobar la disponibilidad del personalPOST /api/v1/vehicles/availability— Comprobar la disponibilidad de la flotaPOST /api/v1/tags— Crear una etiquetaDELETE /api/v1/tags/{tagId}— Eliminar una etiquetaPOST /api/v1/tags/{tagId}/assignments— Asignar una etiqueta a una entidadDELETE /api/v1/tags/{tagId}/assignments— Quitar una etiqueta de una entidadPOST /api/v1/kits— Crear un kitPATCH /api/v1/kits/{kitId}— Actualizar un kitPOST /api/v1/collections— Crear una colecciónPATCH /api/v1/collections/{collectionId}— Actualizar una colecciónPOST /api/v1/services— Crear un servicioPATCH /api/v1/services/{serviceId}— Actualizar un servicioPOST /api/v1/internal-services— Crear un servicio internoPATCH /api/v1/internal-services/{internalServiceId}— Actualizar un servicio internoPOST /api/v1/planner/assignments— Asignar un recurso a un servicioPOST /api/v1/planner/assignments/remove— Quitar un recurso de un servicioPOST /api/v1/availability/unavailabilities— Declarar una indisponibilidadPATCH /api/v1/availability/unavailabilities/{unavailabilityId}— Corregir o cerrar una indisponibilidadDELETE /api/v1/availability/unavailabilities/{unavailabilityId}— Eliminar una indisponibilidadPOST /api/v1/incidents— Abrir una incidenciaPATCH /api/v1/incidents/{incidentId}— Actualizar una incidenciaPOST /api/v1/incidents/{incidentId}/comments— Comentar una incidenciaPOST /api/v1/notes— Escribe una nota en una entidadPOST /api/v1/tasks— Crear una tareaPATCH /api/v1/tasks/{taskId}— Actualizar una tareaDELETE /api/v1/tasks/{taskId}— Eliminar una tareaPOST /api/v1/crm/opportunities— Crear una oportunidadPATCH /api/v1/crm/opportunities/{opportunityId}— Actualizar una oportunidadPATCH /api/v1/crm/opportunities/{opportunityId}/stage— Mover una oportunidad a otra etapaPOST /api/v1/crm/opportunities/{opportunityId}/close— Cerrar una oportunidadPOST /api/v1/crm/opportunities/{opportunityId}/links— Vincular un documento a una oportunidadPOST /api/v1/purchase-orders/{purchaseOrderId}/approve— Aprobar un pedido de compraPOST /api/v1/purchase-orders/{purchaseOrderId}/receive— Recibir material de un pedido de compraPOST /api/v1/treasury/payments— Registrar un pago entrante o salientePATCH /api/v1/treasury/payments/{paymentId}— Actualizar un pagoPOST /api/v1/treasury/payments/{paymentId}/links— Vincular un pago a un documentoPOST /api/v1/orders/{orderId}/cancel— Cancelar un pedidoPUT /api/v1/orders/{orderId}/archive— Archivar o restaurar un pedidoPUT /api/v1/items/{itemId}/accessories— Actualizar los accesorios de un artículoPUT /api/v1/items/{itemId}/alternatives— Actualizar las alternativas de un artículoPATCH /api/v1/items/{itemId}/variants/{variantId}— Actualizar una variante de un artículoPOST /api/v1/contacts/lookup— Buscar contactos por referencia externaPOST /api/v1/orders/line-items/returns— Devolver líneas de pedidoPOST /api/v1/ai/ask— Preguntar a la IA sobre tus datosPOST /api/v1/workflows/{workflowId}/runs— Ejecutar un workflowPOST /api/v1/orders/{orderId}/reserve— Reservar un pedidoPOST /api/v1/orders/{orderId}/unreserve— Anula la reserva de un pedidoPOST /api/v1/projects/{projectId}/orders/{orderId}— Vincular un pedido a un proyectoDELETE /api/v1/projects/{projectId}/orders/{orderId}— Desvincular un pedido de un proyectoPOST /api/v1/invoices/{invoiceId}/validate— Validar una facturaPOST /api/v1/invoices/{invoiceId}/void— Anular una facturaPUT /api/v1/invoices/external/{originSystem}/{originExternalId}— Crear o actualizar el espejo de una factura emitida externamentePOST /api/v1/credit-notes/{creditNoteId}/validate— Validar una nota de créditoPOST /api/v1/credit-notes/{creditNoteId}/void— Anular una nota de créditoPATCH /api/v1/proformas/{proformaId}/status— Cambiar el estado comercial de una proformaPATCH /api/v1/quotes/{quoteId}/status— Cambiar el estado comercial de un presupuestoPOST /api/v1/contracts/{contractId}/validate— Validar un contratoPOST /api/v1/contracts/{contractId}/sign— Registrar la firma de un contratoPOST /api/v1/contracts/{contractId}/void— Anular un contratoPOST /api/v1/contracts/{contractId}/cancel— Cancelar un contrato a efectos operativosPOST /api/v1/supplier-invoices/{supplierInvoiceId}/validate— Validar una factura de proveedorPOST /api/v1/supplier-invoices/{supplierInvoiceId}/void— Anular una factura de proveedor
Por MCP
Una llamada a una herramienta que falla vuelve con `isError` y el problema como contenido estructurado, con el mismo `code`.
¿Te ha resultado útil esta página?