Skip to content

Commit 1d1e4a6

Browse files
frostebiteclaude
andcommitted
feat(lfs): add fallback provider health logging
Log to stderr when the primary LFS provider is unavailable and a fallback provider is used for downloads. Silent on the happy path (primary provider succeeds). This provides a health signal so users can detect when Google Drive is down and fallback is active. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 5210cbe commit 1d1e4a6

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

service/service.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,21 +99,29 @@ func retrieve(baseDir, gitDir, oid string, size int64, useAction bool, a *api.Ac
9999

100100
dirs := splitBaseDirs(baseDir)
101101
var lastErr error
102-
for _, d := range dirs {
102+
for i, d := range dirs {
103103
var err error
104104
if d.script {
105105
err = tryRetrieveScript(d.path, gitDir, oid, size, d.compression, writer, errWriter)
106106
} else {
107107
err = tryRetrieveDir(d.path, gitDir, oid, size, d.compression, writer, errWriter)
108108
}
109109
if err == nil {
110+
if i > 0 {
111+
util.WriteToStderr(fmt.Sprintf("LFS: retrieved %s from fallback provider %d: %s\n", oid, i+1, d.path), errWriter)
112+
}
110113
return
111114
}
115+
if i == 0 && len(dirs) > 1 {
116+
util.WriteToStderr(fmt.Sprintf("LFS: primary provider unavailable, falling back to provider %d: %s\n", i+2, dirs[i+1].path), errWriter)
117+
}
112118
lastErr = err
113119
}
114120

115121
if useAction && a != nil {
116122
if err := retrieveFromAction(a, gitDir, oid, size, writer, errWriter); err == nil {
123+
providerCount := len(dirs)
124+
util.WriteToStderr(fmt.Sprintf("LFS: retrieved %s from fallback action (after %d provider(s) failed)\n", oid, providerCount), errWriter)
117125
return
118126
} else {
119127
lastErr = err

0 commit comments

Comments
 (0)