diff --git a/frontend/public/mockServiceWorker.js b/frontend/public/mockServiceWorker.js index 8b841baf2a..58eb75a35a 100644 --- a/frontend/public/mockServiceWorker.js +++ b/frontend/public/mockServiceWorker.js @@ -8,7 +8,7 @@ * - Please do NOT serve this file on production. */ -const PACKAGE_VERSION = '2.7.5' +const PACKAGE_VERSION = '2.7.6' const INTEGRITY_CHECKSUM = '00729d72e3b82faf54ca8b9621dbb96f' const IS_MOCKED_RESPONSE = Symbol('isMockedResponse') const activeClientIds = new Set() diff --git a/openhands/integrations/provider.py b/openhands/integrations/provider.py index 871b3efd36..efcecdc9ff 100644 --- a/openhands/integrations/provider.py +++ b/openhands/integrations/provider.py @@ -43,7 +43,11 @@ class ProviderToken(BaseModel): if isinstance(token_value, ProviderToken): return token_value elif isinstance(token_value, dict): - token_str = token_value.get('token') + token_str = token_value.get('token', '') + # Override with emtpy string if it was set to None + # Cannot pass None to SecretStr + if token_str is None: + token_str = '' user_id = token_value.get('user_id') return cls(token=SecretStr(token_str), user_id=user_id) diff --git a/openhands/server/routes/secrets.py b/openhands/server/routes/secrets.py index 20df522d5f..76c1ebfdf1 100644 --- a/openhands/server/routes/secrets.py +++ b/openhands/server/routes/secrets.py @@ -52,7 +52,6 @@ async def invalidate_legacy_secrets_store( async def check_provider_tokens(provider_info: POSTProviderModel) -> str: - print(provider_info) if provider_info.provider_tokens: # Determine whether tokens are valid for token_type, token_value in provider_info.provider_tokens.items(): @@ -154,10 +153,10 @@ async def load_custom_secrets_names( return GETCustomSecrets(custom_secrets=custom_secrets) except Exception as e: - logger.warning(f'Invalid token: {e}') + logger.warning(f'Failed to load secret names: {e}') return JSONResponse( status_code=status.HTTP_401_UNAUTHORIZED, - content={'error': 'Invalid token'}, + content={'error': 'Failed to get secret names'}, )