Skip to main content
Solved

Problemas com campos de anexo

  • April 30, 2026
  • 3 replies
  • 71 views

rvitoriano
Forum|alt.badge.img

Olá, pessoal, boa tarde.

Fiz alguns testes com API para fazer upload de arquivos em campo de anexos e aconteceu o seguinte:

Arquivo sobe corretamente via createPresignedUrl, o downloadUrl gerado pelo Pipefy funciona, updateFieldsValues + ADD grava o anexo, mas a interface do campo de anexo às vezes falha no download e, depois de alguns anexos falhos, o próprio campo passa a retornar INVALID_INPUT até limpar os anexos.

Alguém tem alguma ideia de correção permanente para isso ou alguma ideia do que fazer? Exemplo de query:

{"query": "\n    mutation {\n      updateFieldsValues(\n        input: {\n          nodeId: \"cardAqui\"\n          values: [\n            {\n              fieldId: \"idDoCampoAqui\"\n              value: [\"orgs/.../uploads/.../nomeDoArquivo.extensao\"]\n              operation: ADD\n            }\n          ]\n        }\n      ) {\n        success\n      }\n    }\n  ", "variables": null}

Best answer by joao-quint

Olá, ​@rvitoriano,

Analisando o que você descreveu, o problema provavelmente tem mais de uma causa acontecendo em conjunto. Vou detalhar cada uma e as soluções.

 

1. Verifique se está passando o path correto

O updateFieldsValues espera o path relativo retornado pelo createPresignedUrl, não uma URL completa. O formato correto é:

orgs/uuid-da-org/uploads/uuid-do-arquivo/nomeDoArquivo.extensao

Se estiver passando a URL completa com https://..., isso pode causar falha de validação intermitente, porque o Pipefy tenta confirmar que o arquivo existe no storage usando esse path, e uma URL completa não passa nessa verificação.

 

2. Use user_errors na sua mutation para capturar o erro exato

Adicione o bloco de erros para ver qual arquivo específico está falhando:

mutation {
updateFieldsValues(
input: {
nodeId: "cardAqui"
values: [
{
fieldId: "idDoCampoAqui"
value: ["orgs/uuid-da-org/uploads/uuid-do-arquivo/arquivo.ext"]
operation: ADD
}
]
}
) {
success
user_errors {
field
message
}
}
}

O retorno de INVALID_INPUT sem detalhe é o sintoma, o user_errors vai te dizer a causa real.

 

3. Tente a mutation específica para anexos

Em vez do updateFieldsValues genérico, existe uma mutation dedicada para campos de anexo que tem tratamento mais robusto para esse caso:

mutation {
updateCardAttachmentFieldValue(
input: {
cardId: "cardId"
fieldId: "fieldId"
attachmentsData: [
{
filePath: "orgs/uuid/uploads/uuid/arquivo.ext"
originalFilename: "nome-original.ext"
}
]
}
) {
success
attachmentsCount
}
}

Vale testar essa mutation com um único arquivo primeiro para isolar se o problema é na operação ADD do updateFieldsValues ou no arquivo em si.

 

4. URLs de download expiram após 7 dias

O downloadUrl retornado pelo createPresignedUrl tem validade. Se a interface estiver tentando usar uma URL gerada há mais de 7 dias, o download falha. Isso não impede o upload, mas pode ser o que está causando as falhas intermitentes na interface.

 

5. Verifique extensões permitidas no campo

Se o campo de anexo tiver restrições de tipo de arquivo configuradas (ex: apenas .pdf e .docx), qualquer arquivo fora dessas extensões vai gerar INVALID_INPUT. Confira as configurações do campo no editor do pipe.

 

Checklist de diagnóstico rápido

  1. Confirme que o arquivo foi de fato enviado para a uploadUrl antes de chamar o updateFieldsValues
  2. Confirme que está usando o path relativo, não a URL completa
  3. Teste com um único arquivo para isolar o problema
  4. Adicione user_errors na mutation para ler o erro detalhado
  5. Tente a mutation updateCardAttachmentFieldValue como alternativa

 

Se mesmo assim o problema persistir, recomendo abrir um ticket com o suporte do Pipefy informando o path exato que está usando, o ID do card e do campo, e o retorno completo da mutation. 

3 replies

joao-quint
Pipefy Staff
Forum|alt.badge.img+8
  • Pipefy Staff
  • Answer
  • June 2, 2026

Olá, ​@rvitoriano,

Analisando o que você descreveu, o problema provavelmente tem mais de uma causa acontecendo em conjunto. Vou detalhar cada uma e as soluções.

 

1. Verifique se está passando o path correto

O updateFieldsValues espera o path relativo retornado pelo createPresignedUrl, não uma URL completa. O formato correto é:

orgs/uuid-da-org/uploads/uuid-do-arquivo/nomeDoArquivo.extensao

Se estiver passando a URL completa com https://..., isso pode causar falha de validação intermitente, porque o Pipefy tenta confirmar que o arquivo existe no storage usando esse path, e uma URL completa não passa nessa verificação.

 

2. Use user_errors na sua mutation para capturar o erro exato

Adicione o bloco de erros para ver qual arquivo específico está falhando:

mutation {
updateFieldsValues(
input: {
nodeId: "cardAqui"
values: [
{
fieldId: "idDoCampoAqui"
value: ["orgs/uuid-da-org/uploads/uuid-do-arquivo/arquivo.ext"]
operation: ADD
}
]
}
) {
success
user_errors {
field
message
}
}
}

O retorno de INVALID_INPUT sem detalhe é o sintoma, o user_errors vai te dizer a causa real.

 

3. Tente a mutation específica para anexos

Em vez do updateFieldsValues genérico, existe uma mutation dedicada para campos de anexo que tem tratamento mais robusto para esse caso:

mutation {
updateCardAttachmentFieldValue(
input: {
cardId: "cardId"
fieldId: "fieldId"
attachmentsData: [
{
filePath: "orgs/uuid/uploads/uuid/arquivo.ext"
originalFilename: "nome-original.ext"
}
]
}
) {
success
attachmentsCount
}
}

Vale testar essa mutation com um único arquivo primeiro para isolar se o problema é na operação ADD do updateFieldsValues ou no arquivo em si.

 

4. URLs de download expiram após 7 dias

O downloadUrl retornado pelo createPresignedUrl tem validade. Se a interface estiver tentando usar uma URL gerada há mais de 7 dias, o download falha. Isso não impede o upload, mas pode ser o que está causando as falhas intermitentes na interface.

 

5. Verifique extensões permitidas no campo

Se o campo de anexo tiver restrições de tipo de arquivo configuradas (ex: apenas .pdf e .docx), qualquer arquivo fora dessas extensões vai gerar INVALID_INPUT. Confira as configurações do campo no editor do pipe.

 

Checklist de diagnóstico rápido

  1. Confirme que o arquivo foi de fato enviado para a uploadUrl antes de chamar o updateFieldsValues
  2. Confirme que está usando o path relativo, não a URL completa
  3. Teste com um único arquivo para isolar o problema
  4. Adicione user_errors na mutation para ler o erro detalhado
  5. Tente a mutation updateCardAttachmentFieldValue como alternativa

 

Se mesmo assim o problema persistir, recomendo abrir um ticket com o suporte do Pipefy informando o path exato que está usando, o ID do card e do campo, e o retorno completo da mutation. 


rvitoriano
Forum|alt.badge.img
  • Author
  • Inspiring
  • June 3, 2026

Olá, ​@rvitoriano,

Analisando o que você descreveu, o problema provavelmente tem mais de uma causa acontecendo em conjunto. Vou detalhar cada uma e as soluções.

 

1. Verifique se está passando o path correto

O updateFieldsValues espera o path relativo retornado pelo createPresignedUrl, não uma URL completa. O formato correto é:

orgs/uuid-da-org/uploads/uuid-do-arquivo/nomeDoArquivo.extensao

Se estiver passando a URL completa com https://..., isso pode causar falha de validação intermitente, porque o Pipefy tenta confirmar que o arquivo existe no storage usando esse path, e uma URL completa não passa nessa verificação.

 

2. Use user_errors na sua mutation para capturar o erro exato

Adicione o bloco de erros para ver qual arquivo específico está falhando:

mutation {
updateFieldsValues(
input: {
nodeId: "cardAqui"
values: [
{
fieldId: "idDoCampoAqui"
value: ["orgs/uuid-da-org/uploads/uuid-do-arquivo/arquivo.ext"]
operation: ADD
}
]
}
) {
success
user_errors {
field
message
}
}
}

O retorno de INVALID_INPUT sem detalhe é o sintoma, o user_errors vai te dizer a causa real.

 

3. Tente a mutation específica para anexos

Em vez do updateFieldsValues genérico, existe uma mutation dedicada para campos de anexo que tem tratamento mais robusto para esse caso:

mutation {
updateCardAttachmentFieldValue(
input: {
cardId: "cardId"
fieldId: "fieldId"
attachmentsData: [
{
filePath: "orgs/uuid/uploads/uuid/arquivo.ext"
originalFilename: "nome-original.ext"
}
]
}
) {
success
attachmentsCount
}
}

Vale testar essa mutation com um único arquivo primeiro para isolar se o problema é na operação ADD do updateFieldsValues ou no arquivo em si.

 

4. URLs de download expiram após 7 dias

O downloadUrl retornado pelo createPresignedUrl tem validade. Se a interface estiver tentando usar uma URL gerada há mais de 7 dias, o download falha. Isso não impede o upload, mas pode ser o que está causando as falhas intermitentes na interface.

 

5. Verifique extensões permitidas no campo

Se o campo de anexo tiver restrições de tipo de arquivo configuradas (ex: apenas .pdf e .docx), qualquer arquivo fora dessas extensões vai gerar INVALID_INPUT. Confira as configurações do campo no editor do pipe.

 

Checklist de diagnóstico rápido

  1. Confirme que o arquivo foi de fato enviado para a uploadUrl antes de chamar o updateFieldsValues
  2. Confirme que está usando o path relativo, não a URL completa
  3. Teste com um único arquivo para isolar o problema
  4. Adicione user_errors na mutation para ler o erro detalhado
  5. Tente a mutation updateCardAttachmentFieldValue como alternativa

 

Se mesmo assim o problema persistir, recomendo abrir um ticket com o suporte do Pipefy informando o path exato que está usando, o ID do card e do campo, e o retorno completo da mutation. 

Bom dia, João.

Primeiramente, obrigado por responder. 

 

Depois que relatei o problema, ele nunca mais aconteceu. Talvez, fosse um dia de problemas no servidor do Pipefy. 

Agora, a automação funciona perfeitamente com vários arquivos, consigo fazer download, adicionar, parece tudo perfeito.. hehe.

 

De qualquer forma, vou guardar esse link da resposta caso volte a acontecer para fazer a verificação.

 

Obrigado.


joao-quint
Pipefy Staff
Forum|alt.badge.img+8
  • Pipefy Staff
  • June 3, 2026

Olá, ​@rvitoriano ,

Que bom saber que o comportamento não voltou a acontecer e que a automação está funcionando normalmente agora.