-
Notifications
You must be signed in to change notification settings - Fork 104
Description
Consistently seeing the below error when trying to plan a workspace in Terraform enterprise
Operation failed: failed uploading filesystem: request failed: PUT https://<<REDACTED>>/_archivist/v1/object/dmF1bHQ6djE6bVFjWmVYcnZwYmRGN0hSanRGZS8vbjhZd3lWNXpsM1dVOWtweUtBNkphSFVkbE5aWlNjZS9LNiswWXFkNFN5RDlUZmI2ZytET0xlcjAwODNhSitScS9wM1R4TlFEWEFzWUtDUFJqYVV5dVNEc2ROMlEvZWtKTUZKOXRjNHV0YnhSeUlkRnNnakVqKzhmSFBXRUtRV25GcElCdndtaUJwaVQ5SXV4NnhPMC9IeW80aE9iQTdyK2VNWVIxdlVVYU9qdEVNZkpqODZFb29GVWV0VzcrUlFCSmZlbFFkbTFYMTkvTWgrY2M2QndhVWdVN2tnNjhMOFJ5aWZsdzlIRzR6Rnd6OW9ZdEFFMWs2Q0NEWU5PMHgrLzZiNmZ6ZWpjU25TaFRoZnF5anpISDJDeXFUMG1jM0IzZm92cmVjaTE5bmZkalVRUmo4U1Q1MGNsSVQ5YWdjPQ giving up after 16 attempt(s): Put "https://<<REDACTED>>_archivist/v1/object/dmF1bHQ6djE6bVFjWmVYcnZwYmRGN0hSanRGZS8vbjhZd3lWNXpsM1dVOWtweUtBNkphSFVkbE5aWlNjZS9LNiswWXFkNFN5RDlUZmI2ZytET0xlcjAwODNhSitScS9wM1R4TlFEWEFzWUtDUFJqYVV5dVNEc2ROMlEvZWtKTUZKOXRjNHV0YnhSeUlkRnNnakVqKzhmSFBXRUtRV25GcElCdndtaUJwaVQ5SXV4NnhPMC9IeW80aE9iQTdyK2VNWVIxdlVVYU9qdEVNZkpqODZFb29GVWV0VzcrUlFCSmZlbFFkbTFYMTkvTWgrY2M2QndhVWdVN2tnNjhMOFJ5aWZsdzlIRzR6Rnd6OW9ZdEFFMWs2Q0NEWU5PMHgrLzZiNmZ6ZWpjU25TaFRoZnF5anpISDJDeXFUMG1jM0IzZm92cmVjaTE5bmZkalVRUmo4U1Q1MGNsSVQ5YWdjPQ": http2: timeout awaiting response headers
Investigating further this issue arises during creating a new configuration version, from the UI it would seem all elements of the plan are successful -
https://github.com/hashicorp/go-tfe/blob/main/configuration_version.go#L277-L284
func (s *configurationVersions) UploadTarGzip(ctx context.Context, uploadURL string, archive io.Reader) error {
req, err := s.client.NewRequest("PUT", uploadURL, archive)
if err != nil {
return err
}
return req.Do(ctx, nil)
}
The above code uses the go-tfe client which has its default values defined here and I am wondering if this is causing the calls to timeout and if there is a way to increase them ?
Lines 343 to 351 in 8623569
client.http = &retryablehttp.Client{ | |
Backoff: client.retryHTTPBackoff, | |
CheckRetry: client.retryHTTPCheck, | |
ErrorHandler: retryablehttp.PassthroughErrorHandler, | |
HTTPClient: config.HTTPClient, | |
RetryWaitMin: 100 * time.Millisecond, | |
RetryWaitMax: 400 * time.Millisecond, | |
RetryMax: 30, | |
} |