diff --git a/pkg/ingester/flush.go b/pkg/ingester/flush.go
index 7bdeae54933df725d705f838b4e1d8782c7258f2..5cc80cb3d6349dd088d4b0f5e07d865e0016d174 100644
--- a/pkg/ingester/flush.go
+++ b/pkg/ingester/flush.go
@@ -169,8 +169,6 @@ func (i *Ingester) flushUserSeries(userID string, fp model.Fingerprint, immediat
 	}
 
 	ctx := user.InjectOrgID(context.Background(), userID)
-	ctx, cancel := context.WithTimeout(ctx, i.cfg.FlushOpTimeout)
-	defer cancel()
 	err := i.flushChunks(ctx, fp, labels, chunks)
 	if err != nil {
 		return err
@@ -264,6 +262,9 @@ func (i *Ingester) flushChunks(ctx context.Context, fp model.Fingerprint, labelP
 		wireChunks = append(wireChunks, c)
 	}
 
+	ctx, cancel := context.WithTimeout(ctx, i.cfg.FlushOpTimeout)
+	defer cancel()
+
 	if err := i.store.Put(ctx, wireChunks); err != nil {
 		return err
 	}