Factuarea APIDevelopers

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.

CodeTypeHTTPDescripción
bulk_task_selection_too_largeinvalid_request_error422La 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_tasksconflict_error409La 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_useconflict_error409Otra 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_reservedinvalid_request_error422El 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_definitioninvalid_request_error422La 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_valueinvalid_request_error422El 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_columninvalid_request_error422La 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_keyinvalid_request_error422La 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_referenceinvalid_request_error422Una 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_scheduleinvalid_request_error422Las 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_statusinvalid_request_error422El 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_periodinvalid_request_error422El 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_exceededpayment_required_error402La 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_foundnot_found_error404La 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_archivedinvalid_request_error422El proyecto está archivado y no admite tareas nuevas ni que se muevan tareas hacia él. Archivar congela el proyecto sin borrarlo.
project_column_not_foundnot_found_error404La 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_columnsinvalid_request_error422Se 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_useconflict_error409La 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_foundnot_found_error404No 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_missinginvalid_request_error422Falta 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_projectinvalid_request_error422Se pide trasladar la tarea al proyecto en el que ya está, así que no hay traslado que hacer.
task_assignee_not_memberinvalid_request_error422El 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_foundnot_found_error404El 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_rejectedinvalid_request_error422El 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_foundnot_found_error404El 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_exceededconflict_error409El á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_editableinvalid_request_error422El 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_foundnot_found_error404El 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_foundnot_found_error404El 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_largeinvalid_request_error422La 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_foundnot_found_error404El 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_foundnot_found_error404El 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_useconflict_error409Ya 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_foundnot_found_error404No 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_foundnot_found_error404No 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_cycleinvalid_request_error422La 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_existsconflict_error409Entre 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_foundnot_found_error404No 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_relationinvalid_request_error422La tarea de origen y la de destino son la misma, y una tarea no puede relacionarse consigo misma.
task_time_entry_invoicedinvalid_request_error422La 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_foundnot_found_error404La entrada de tiempo no existe, pertenece a otra tarea o es de otra empresa; los tres casos responden igual.
task_time_not_invoiceableinvalid_request_error422No 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_runningconflict_error409Ya 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_runninginvalid_request_error422Se 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_expiredinvalid_request_error410El 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_foundnot_found_error404El 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

En esta página

¿Te echamos una mano?Contactar con soporte