Códigos de error de Tareas
Todos los códigos de error de la API pública que emite Tareas, con su estado HTTP, su type y una página por código.
Códigos de error que emite Tareas. Cada code enlaza a su propia página con la causa y la acción a tomar.
| Code | Type | HTTP | Descripción |
|---|---|---|---|
bulk_task_selection_too_large | invalid_request_error | 422 | La operación masiva incluye más tareas de las que admite un solo lote (200 por defecto; el mensaje dice el tope vigente). No es un límite de peticiones ni del plan: acota lo que se procesa de una vez. |
column_has_tasks | conflict_error | 409 | La columna que intentas borrar todavía tiene tareas y la petición no dice adónde llevarlas. Para no dejar tareas sin sitio en el tablero, el borrado se rechaza y no se ha modificado nada. |
column_slug_in_use | conflict_error | 409 | Otra columna del mismo proyecto ya tiene un nombre equivalente. Se compara el identificador que se deriva del nombre, así que dos nombres que solo difieren en mayúsculas o signos chocan igual. |
column_slug_reserved | invalid_request_error | 422 | El nombre de la columna se traduce al identificador planned o archived, reservados para los estados de las tareas que están fuera del tablero. Una columna así sería indistinguible de esos estados. |
invalid_custom_field_definition | invalid_request_error | 422 | La definición del campo personalizado no es válida: nombre fuera de 1 a 60 caracteres, tipo desconocido, campo obligatorio sin valor por defecto, opciones en un tipo que no las admite, cambio de tipo tras crearlo, quitar una opción que usan tareas, o una reordenación incompleta. error.param señala el dato concreto. |
invalid_custom_field_value | invalid_request_error | 422 | El valor no encaja con el tipo del campo personalizado —por ejemplo, texto en un campo numérico u opción que no está en la lista— o el campo no pertenece al proyecto de la tarea. |
invalid_move_target_column | invalid_request_error | 422 | La columna indicada para recibir las tareas no sirve de destino: no existe, es de otro proyecto o es la misma columna que se está borrando. El borrado no se ha hecho. |
invalid_task_key | invalid_request_error | 422 | La clave de tarea no tiene la forma CLAVE-N —clave del proyecto, guion y número, como WEB-42— o el número de tarea no es un entero positivo. |
invalid_task_reference | invalid_request_error | 422 | Una tarea referenciada en el cuerpo de la petición no existe o es de otra empresa; los dos casos responden igual. error.param indica qué campo contenía la referencia. |
invalid_task_schedule | invalid_request_error | 422 | Las fechas de la tarea no son coherentes: la fecha de inicio es posterior a la fecha límite, o una de las dos no existe en el calendario (por ejemplo, un 30 de febrero). |
invalid_task_status | invalid_request_error | 422 | El destino de la tarea no es válido: el estado no existe, la transición no está permitida, se envían a la vez columna y estado, la columna no es del proyecto de la tarea, o se pide columna para una tarea planificada o archivada. Una tarea en el tablero siempre tiene columna y una fuera de él nunca la tiene. |
invalid_time_entry_period | invalid_request_error | 422 | El periodo de la entrada de tiempo no es válido: el fin es anterior al inicio, dura más de 24 horas, el inicio está más de un día en el futuro, una fecha no es válida, se intenta quitar el fin de una entrada cerrada o se cambian las horas de una entrada que sigue en marcha. |
limit_exceeded | payment_required_error | 402 | La empresa ha alcanzado el límite de facturas o de documentos anuales de su plan; el mensaje dice cuál. En la API v1 lo emite la facturación de horas (POST /v1/projects/{project}/time-invoices), que lo comprueba antes de crear nada: no se ha generado el borrador de factura ni se ha marcado ninguna hora como facturada. |
linked_entity_not_found | not_found_error | 404 | La entidad que se quiere vincular no existe, es de otra empresa o pertenece a un módulo que la empresa no tiene contratado; los tres casos responden igual. Ocurre al vincular (POST /v1/tasks/{task}/entity-links) y también al crear una tarea con entity_link en POST /v1/tasks: en ese caso la tarea NO se crea. |
project_archived | invalid_request_error | 422 | El proyecto está archivado y no admite tareas nuevas ni que se muevan tareas hacia él. Archivar congela el proyecto sin borrarlo. |
project_column_not_found | not_found_error | 404 | La columna no existe, pertenece a otro proyecto o es de otra empresa; los tres casos responden igual. Una columna solo se direcciona dentro del proyecto que la contiene. |
project_has_no_columns | invalid_request_error | 422 | Se pide colocar la tarea en el tablero, pero el proyecto no tiene ninguna columna en la que ponerla. Una tarea activa siempre vive en una columna. |
project_key_in_use | conflict_error | 409 | La clave corta ya la usa otro proyecto de la empresa, o sigue reservada como clave anterior de un proyecto que la cambió. La clave da nombre a las tareas (WEB-42), así que no puede repetirse dentro de la empresa. |
project_not_found | not_found_error | 404 | No existe ningún proyecto con ese identificador o esa clave en la empresa autenticada. Un proyecto de otra empresa responde exactamente igual, así que la respuesta nunca revela si existe en otro sitio. |
required_custom_field_missing | invalid_request_error | 422 | Falta el valor de un campo personalizado que el proyecto declara obligatorio; el mensaje nombra el campo. Un campo obligatorio no puede quedar vacío. |
task_already_in_project | invalid_request_error | 422 | Se pide trasladar la tarea al proyecto en el que ya está, así que no hay traslado que hacer. |
task_assignee_not_member | invalid_request_error | 422 | El usuario indicado como asignado no es miembro de la empresa. Un usuario inexistente, de otra empresa o sin membresía responden igual, para no revelar cuentas ajenas. |
task_attachment_not_found | not_found_error | 404 | El adjunto no existe, pertenece a otra tarea o es de otra empresa; los tres casos responden igual. Un adjunto borrado deja de poder consultarse y descargarse. |
task_attachment_rejected | invalid_request_error | 422 | El fichero no se admite como adjunto: está vacío, supera los 10 MB, o su tipo real —detectado por su contenido (magic bytes), no por la extensión ni por la cabecera— no está permitido. También se rechaza una surface distinta de description o comment. |
task_calendar_feed_not_found | not_found_error | 404 | El feed de calendario (iCal) no existe, está revocado, es de otra empresa o es el feed personal de otro usuario; todos los casos responden igual. Solo lo emite la aplicación web al rotar o revocar feeds, no la API v1. |
task_column_capacity_exceeded | conflict_error | 409 | El ámbito del tablero —la columna, o el estado planificado o archivado— ha agotado el rango de posiciones con que se ordenan sus tareas. No es un límite del plan ni de permisos, sino el tope técnico de ordenación de ese ámbito. |
task_comment_not_editable | invalid_request_error | 422 | El comentario no se puede editar: solo su autor puede modificarlo, y los comentarios importados o traídos por una integración son inmutables para conservar lo que dijo el origen. |
task_comment_not_found | not_found_error | 404 | El comentario no existe, pertenece a otra tarea o es de otra empresa; los tres casos responden igual. Un comentario solo se direcciona bajo la tarea en la que se escribió. |
task_custom_field_not_found | not_found_error | 404 | El campo personalizado no existe, pertenece a otro proyecto o es de otra empresa; los tres casos responden igual. Cada proyecto define sus propios campos. |
task_description_too_large | invalid_request_error | 422 | La descripción supera el máximo de 100.000 caracteres, contados sobre el Markdown enviado antes de sanearlo. El tope no depende del plan: protege el editor y el almacenamiento. |
task_entity_link_not_found | not_found_error | 404 | El vínculo entre la tarea y un documento, contacto, producto o empleado no existe, pertenece a otra tarea o es de otra empresa; los tres casos responden igual. |
task_external_link_not_found | not_found_error | 404 | El enlace externo no existe, pertenece a otra tarea o es de otra empresa. También responde así un enlace que mantiene una integración (una issue o una pull request de la forja) cuando se intenta gestionar como si fuera un enlace manual. |
task_label_name_in_use | conflict_error | 409 | Ya existe en la empresa una etiqueta con ese nombre; la comparación no distingue mayúsculas de minúsculas. Las etiquetas se comparten entre todos los proyectos de la empresa. |
task_label_not_found | not_found_error | 404 | No existe ninguna etiqueta con ese identificador en la empresa autenticada; una etiqueta de otra empresa responde igual. Las etiquetas son de la empresa, no de un proyecto concreto. |
task_not_found | not_found_error | 404 | No existe ninguna tarea con ese identificador o esa clave en la empresa autenticada. Una tarea de otra empresa —o, en el portal del empleado, una que no tiene asignada— responde exactamente igual. |
task_relation_cycle | invalid_request_error | 422 | La relación cerraría un ciclo de subtareas o de bloqueos: la tarea destino ya depende, directa o indirectamente, de la de origen, y ninguna de las dos podría completarse primero. |
task_relation_exists | conflict_error | 409 | Entre estas dos tareas ya hay una relación del mismo tipo, en cualquiera de las dos direcciones. Repetirla no añadiría información, así que no se crea una segunda. |
task_relation_not_found | not_found_error | 404 | No existe ninguna relación con ese identificador entre tareas de la empresa autenticada; una relación de otra empresa, o una ya borrada, responde igual. |
task_self_relation | invalid_request_error | 422 | La tarea de origen y la de destino son la misma, y una tarea no puede relacionarse consigo misma. |
task_time_entry_invoiced | invalid_request_error | 422 | La entrada de tiempo ya está incluida en una factura. Mientras siga vinculada no se edita ni se vuelve a facturar, para que la factura y las horas no se contradigan. |
task_time_entry_not_found | not_found_error | 404 | La entrada de tiempo no existe, pertenece a otra tarea o es de otra empresa; los tres casos responden igual. |
task_time_not_invoiceable | invalid_request_error | 422 | No se pueden facturar las horas pedidas y el mensaje nombra el motivo: el proyecto no tiene cliente de facturación o ese cliente ya no admite facturas, falta tarifa por hora o producto con precio, una entrada no es facturable, está en marcha o es de otro proyecto, no hay entradas facturables, o la selección es ambigua. |
task_timer_already_running | conflict_error | 409 | Ya tienes un temporizador en marcha en esta empresa. Cada usuario puede tener como máximo uno a la vez por empresa, para que el tiempo registrado no se solape entre tareas. |
task_timer_not_running | invalid_request_error | 422 | Se pide parar el temporizador, pero no tienes ninguno en marcha en esta empresa; puede que ya se parara desde otra sesión o dispositivo. |
task_upload_link_expired | invalid_request_error | 410 | El enlace de subida ya no sirve. El subcode dice por qué: expired, porque el enlace caducó (vive 30 minutos desde que se creó), o consumed, porque ya se usó una vez y cada enlace admite un único envío. |
task_upload_link_not_found | not_found_error | 404 | El enlace de subida no es válido: el token está mal formado o no corresponde a ningún enlace, casi siempre porque se copió incompleto. Un enlace caducado o ya usado responde en cambio con task_upload_link_expired. |
Relacionado
Códigos de error por categoría
Localiza un error por la categoría que lo emite.
Tabla de referencia completa
Todos los códigos, estados HTTP, tipos y descripciones en una referencia.
Modelo de errores
Interpreta la respuesta de error y gestiona los errores por código.