From 6557195a4d34780c81cb361e62b30e36bc13f781 Mon Sep 17 00:00:00 2001 From: SAY-5 Date: Sat, 2 May 2026 11:46:13 -0700 Subject: [PATCH] filemanager/manager: surface incomplete prepare-upload response instead of nil-deref Signed-off-by: SAY-5 --- pkg/filemanager/manager/upload.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkg/filemanager/manager/upload.go b/pkg/filemanager/manager/upload.go index a4792676..ea605f4e 100644 --- a/pkg/filemanager/manager/upload.go +++ b/pkg/filemanager/manager/upload.go @@ -406,6 +406,12 @@ func (m *manager) updateStateless(ctx context.Context, req *fs.UploadRequest, o if err != nil { return nil, fmt.Errorf("faield to prepare uplaod: %w", err) } + // A successful upstream call may still return a response with nil Req or + // Session — observed when the master returned 502 mid-prepare (#3441) and + // crashed the slave on the next attribute access. + if res == nil || res.Req == nil || res.Session == nil { + return nil, fmt.Errorf("stateless prepare upload returned an incomplete response") + } req.Props = res.Req.Props if err := m.Upload(ctx, req, res.Session.Policy, res.Session); err != nil {