Http2 stream closed / connection reset / context canceled

e3b0c442 or the full e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 (sha256 of an empty string) hash means that the file is empty. The GET errors make it likely that it’s just the download that failed.

From what I can tell, it looks like the download failed, but restic nevertheless got the information / interpreted it such that the download was successful. The error message originates here:

As the error message contains a proper file size, restic should be able to tell that 0 bytes are less than the expected xxx bytes and interpret that as an error. After some digging through the go library, it looks like the http client ignores the content-length sent by the server when no data was returned. I’ve opened an issue in the golang bugtracker: net/http: No error with http2 client on empty reply body and content-length != 0 · Issue #46071 · golang/go · GitHub

2 Likes