Attempting to read a config/layer as a manifest results in a 500 error
Context
Related to a production incident from today: gitlab-com/gl-infra/production#5149 (closed).
Problem
We have seen a large burst of manifest GET requests which failed with a 500 error. The underlying error was unknown: unknown error: unrecognized manifest schema version 0
. Upon inspecting a few occurrences, I could see that the manifest that users were trying to pull were not actual manifests but rather configurations, so the API failed to parse them and thrown this error.
This is another example of #409 (closed).
Solution
- Check several other instances of this error to confirm the root cause.
- Handle these errors like a 400/404 instead of the current 500. This is due to an invalid payload. We currently can't detect/block these uploads until we reach a conclusion on #409 (closed) but we should not raise a 500 if a user attempts to read a config/layer as a manifest.
Edited by João Pereira