Saltar para o conteúdo
Solução de problemas

Solução de problemas

Como diagnosticar

Identifique o código

Anote o código HTTP e a mensagem da resposta.

Consulte o significado

Veja Códigos de retorno.

Aplique a solução

Procure o sintoma em Problemas comuns. Se não resolver, acione o suporte.

Problemas comuns

400 ao chamar upload, listagem ou relatório com usuário e senha

Sintoma: uma integração que funcionava na versão 8 passa a receber 400 em /upload, /download/list ou /report.

Causa provável: a chamada envia Authorization: Basic. A partir da versão 9, essas rotas aceitam somente token Bearer.

Solução: obtenha um token em POST /oauth2/token (ou no login) e envie Authorization: Bearer <access_token>. Veja Autenticação na API.

401 Unauthorized ao chamar a API

Sintoma: a API retorna 401.

Causa provável: usuário inexistente, senha incorreta, token Bearer expirado ou com assinatura, emissor ou público inválidos.

Solução: confira usuário e senha cadastrados no servidor STCP. Obtenha um novo token em /oauth2/token; ele expira após expires_in segundos.

401 no token exchange

Sintoma: a troca do JWT do portal de serviços por um token do Riversoft® STCP DirectLink é rejeitada.

Causa provável: a assinatura do JWT não confere com a chave cadastrada para o provedor, o iss ou o aud não correspondem à configuração, o token expirou ou o usuário das claims não existe no servidor STCP.

Solução: verifique se o token foi assinado com a chave privada correspondente à chave cadastrada e se kid e alg coincidem. Confira o identificador enviado em provider (ou no header X-STCPDIRECTLINK-JWT-ISSUER), o relógio dos servidores e o usuário. Veja JWT de confiança.

400 Bad Request ao obter o token

Sintoma: POST /oauth2/token retorna 400.

Causa provável: o corpo não está no formato application/x-www-form-urlencoded, falta grant_type ou, no token exchange, subject_token_type é diferente de urn:ietf:params:oauth:token-type:jwt.

Solução: envie o formulário com o header Content-Type: application/x-www-form-urlencoded. No password grant: grant_type=password&username=<usuario>&password=<senha>. A resposta traz error e error_description com o motivo.

403 Forbidden com um token válido

Sintoma: o token é aceito, mas a chamada retorna 403.

Causa provável: uma regra de acesso bloqueou a operação: conexão do usuário bloqueada, fora da janela de horário, serviço desabilitado, filtro de arquivo, limite de sessões ou host da URL diferente do configurado para a API.

Solução: use exatamente o host informado pelo administrador e peça a ele que verifique as regras do usuário no servidor STCP.

Erro na verificação do Cloudflare Turnstile no login

Sintoma: o login, o primeiro acesso ou a recuperação de senha retorna 400, 403 ou 503.

Causa provável: 400 indica que o header CF-Turnstile-Response não foi enviado ou é inválido; 403, que o token foi rejeitado (inválido, expirado ou já utilizado); 503, que o servidor não conseguiu validar o token com a Cloudflare.

Solução: gere um novo token do widget a cada tentativa (ele é de uso único e expira em 300 segundos). Em caso de 503, tente novamente; se persistir, o administrador deve verificar a saída HTTPS do servidor para challenges.cloudflare.com.

403 Forbidden no primeiro acesso

Sintoma: GET /auth/firstaccess retorna 403.

Causa provável: o usuário já fez o primeiro acesso.

Solução: use Esqueceu a senha para redefinir a senha.

O arquivo não aparece mais na lista de download

Sintoma: um arquivo já baixado não aparece em /download/list.

Causa provável: após o download, o arquivo é movido para a área de backup.

Solução: consulte /download/list/backup e baixe novamente pelo linkURL retornado, enquanto a política de retenção permitir.

A lista de arquivos está incompleta

Sintoma: a lista retorna no máximo 100 arquivos.

Causa provável: a lista é paginada.

Solução: incremente o parâmetro page a partir de 0 até receber uma lista vazia.

O Riversoft STCP DirectLink Portal não abre ou retorna 404

Sintoma: o endereço /portal retorna 404 ou o portal não carrega a configuração.

Causa provável: o config.json do portal não foi criado a partir do example-config.json, ou o caminho das páginas estáticas do serviço da API na instância não é o padrão.

Solução: crie o config.json a partir do modelo (veja Configuração do Riversoft STCP DirectLink Portal) e confira, no serviço de rede da API da instância, se o caminho das páginas estáticas é /usr/local/stcpdirectlink/static, sem barra no fim.