Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Possible error with Cache-Control caching #594

Open
ant1m4tt3r opened this issue Mar 4, 2024 · 5 comments
Open

Possible error with Cache-Control caching #594

ant1m4tt3r opened this issue Mar 4, 2024 · 5 comments

Comments

@ant1m4tt3r
Copy link

I was wondering if this line could cause issues by caching a possibly failed execution in the try/catch block below.

If I'm not mistaken, by setting the Cache-Control header, Vercel will cache the response of the request no mater its status, being 200 or 500. So in case the execution flow falls into the catch block, a response with an error may be cached by the CDN, causing further requests to hit that caching mechanism and receiving an error response.

Is this a farfetched thought or it may be the cause of some issues?

response.setHeader('Cache-Control', CACHE_CONTROL_HEADER_VALUE);

@lucianopf
Copy link
Member

Vou responder em pr-br dado que é o padrão adotado pelo projeto e não temos objetivo de fomentar a criação de issues e PRs em outra língua ^^ (o código e commits ainda gosto de manter em ingles)

Vc tem total razão! Estamos fazendo cache de erros 😢
Se não me engano no passado a Vercel lidava com erros da classe 5xx mas parece que isso não está mais documentado e pra reforçar essa ideia temos alguns erros 404 que tbm estão ficando em cache e atrapalhando bastante a recuperação do serviço numa segunda tentativa. =/

@guilherme-aguilar
Copy link

Quando solicito uma req usando ?test deveria forcar uma nova conexao, sem uso de cache, ou nao?

// 20240308095409
// https://brasilapi.com.br/api/cep/v2/38411336?test

{
"name": "CepPromiseError",
"message": "Todos os serviços de CEP retornaram erro.",
"type": "service_error",
"errors": [
{
"name": "ServiceError",
"message": "A autenticacao de null falhou!",
"service": "correios"
},
{
"name": "ServiceError",
"message": "Erro ao se conectar com o serviço ViaCEP.",
"service": "viacep"
},
{
"name": "ServiceError",
"message": "Erro ao se conectar com o serviço WideNet.",
"service": "widenet"
},
{
"name": "ServiceError",
"message": "Erro ao se conectar com o serviço dos Correios Alt.",
"service": "correios-alt"
}
]
}

Anteriormente, estava tendo o mesmo erro devido ao cache da aplicação usei o ?test e resolveu temporariamente, agora quando voltei a usar pelo método tradicional ele apresenta novos erros.

// 20240308091121
// https://brasilapi.com.br/api/cep/v2/35530-000?test

{
"message": "invalid json response body at https://nominatim.openstreetmap.org/search?format=json&addressdetails=1&country=Brasil&state=MG&city=Cl%C3%A1udio reason: Unexpected token < in JSON at position 0",
"type": "invalid-json"
}

@guilherme-aguilar
Copy link

Notei tbm que tanto na API v1 e V2 de cep, quando faço a requisição com ou sem o "-", ele me retorna situações diferentes, algo que anteriormente também não acontecia.

Sem "-":
{
"cep": "35530000",
"state": "MG",
"city": "Cláudio",
"neighborhood": "",
"street": "",
"service": "correios-alt"
}

Com "-";

{
"message": "Todos os serviços de CEP retornaram erro.",
"type": "service_error",
"name": "CepPromiseError",
"errors": [
{
"name": "ServiceError",
"message": "A autenticacao de null falhou!",
"service": "correios"
},
{
"name": "ServiceError",
"message": "Erro ao se conectar com o serviço ViaCEP.",
"service": "viacep"
},
{
"name": "ServiceError",
"message": "Erro ao se conectar com o serviço WideNet.",
"service": "widenet"
},
{
"name": "ServiceError",
"message": "Erro ao se conectar com o serviço dos Correios Alt.",
"service": "correios-alt"
}
]
}

@carlossantosdev
Copy link

É, a API de CEP está bem ruim de usar.

Também estou tendo problemas similares.
Vários CEP's que eu testo retornam erro, tanto na API v1 quanto na API v2.

Só para compartilhar informação também, veja o caso do CEP 18103-055.

Screenshot 2024-03-08 at 16 36 24
Screenshot 2024-03-08 at 16 36 13

@ant1m4tt3r
Copy link
Author

desculpa a demora para responder (e de volta ao pt-BR como foi sugerido). o que acha então @lucianopf de mantermos a cache apenas para os status 200, 400 e 404, removendo ela do status 500? posso fazer um PR para isso logo logo.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants