aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2026-03-20 13:44:19 +0100
committerGitHub Enterprise <[email protected]>2026-03-20 13:44:19 +0100
commitd9b614cc8b92667b94d4ec3eb6bb2942d0a0e33f (patch)
tree149703893d865208e6ffdc9f8be7fb00690a546d
parentadd hub instance info (#869) (diff)
downloadzen-d9b614cc8b92667b94d4ec3eb6bb2942d0a0e33f.tar.xz
zen-d9b614cc8b92667b94d4ec3eb6bb2942d0a0e33f.zip
auth fail no cache (#871)v5.7.24-pre0v5.7.24
- Bugfix: Retry OIDC token refresh once on failure before propagating the error - Bugfix: Handle HTTP 501 (Not Implemented) from Jupiter as a signal to fall back from multi-range to single-range requests
-rw-r--r--CHANGELOG.md2
-rw-r--r--src/zenhttp/httpclient.cpp5
-rw-r--r--src/zenremotestore/jupiter/jupitersession.cpp3
3 files changed, 9 insertions, 1 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index a181bac0f..7b072923e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -41,6 +41,8 @@
- Bugfix: Minor test stability fixes (flaky hash collisions, per-thread RNG seeds)
- Bugfix: Handle long paths in the project store
- Bugfix: Authentication callbacks are not thread safe, ensured call sites does single threaded calls
+- Bugfix: Retry OIDC token refresh once on failure before propagating the error
+- Bugfix: Handle HTTP 501 (Not Implemented) from Jupiter as a signal to fall back from multi-range to single-range requests
## 5.7.23
- Bugfix: Crash at startup if a log message was emitted before logging is properly initialized
diff --git a/src/zenhttp/httpclient.cpp b/src/zenhttp/httpclient.cpp
index 3e81d4a8a..13c86e9ae 100644
--- a/src/zenhttp/httpclient.cpp
+++ b/src/zenhttp/httpclient.cpp
@@ -128,6 +128,11 @@ HttpClientBase::GetAccessToken()
return m_CachedAccessToken.GetValue();
}
HttpClientAccessToken NewAccessToken = m_ConnectionSettings.AccessTokenProvider.value()();
+ if (!NewAccessToken.IsValid())
+ {
+ ZEN_WARN("HttpClient failed to refresh access token, retrying once");
+ NewAccessToken = m_ConnectionSettings.AccessTokenProvider.value()();
+ }
if (NewAccessToken.IsValid())
{
m_CachedAccessToken = NewAccessToken;
diff --git a/src/zenremotestore/jupiter/jupitersession.cpp b/src/zenremotestore/jupiter/jupitersession.cpp
index b5531fa60..a9788cb4e 100644
--- a/src/zenremotestore/jupiter/jupitersession.cpp
+++ b/src/zenremotestore/jupiter/jupitersession.cpp
@@ -882,7 +882,8 @@ JupiterSession::GetBuildBlob(std::string_view Namespace,
m_AllowRedirect ? "true"sv : "false"sv);
HttpClient::Response Response = m_HttpClient.Download(Url, TempFolderPath, Headers);
- if (Response.StatusCode == HttpResponseCode::RangeNotSatisfiable && Ranges.size() > 1)
+ if ((Response.StatusCode == HttpResponseCode::RangeNotSatisfiable || Response.StatusCode == HttpResponseCode::NotImplemented) &&
+ Ranges.size() > 1)
{
// Requests to Jupiter that is not served via nginx (content not stored locally in the file system) can not serve multi-range
// requests (asp.net limitation) This rejection is not implemented as of 2026-03-02, it is in the backlog (@joakim.lindqvist)