Files
bakery-ia/LOGGING_FIX_SUMMARY.md
Urtzi Alfaro bf1db7cb9e New token arch
2026-01-10 21:45:37 +01:00

2.6 KiB

Auth Service Login Failure Fix

Issue Description

The auth service was failing during login with the following error:

Session error: Logger._log() got an unexpected keyword argument 'tenant_service_url'

This error occurred in the SubscriptionFetcher class when it tried to log initialization information using keyword arguments that are not supported by the standard Python logging module.

Root Cause

The issue was caused by incorrect usage of the Python logging module. The code was trying to use keyword arguments in logging calls like this:

logger.info("SubscriptionFetcher initialized", tenant_service_url=self.tenant_service_url)

However, the standard Python logging module's _log() method does not support arbitrary keyword arguments. This is a common misunderstanding - some logging libraries like structlog support this pattern, but the standard logging module does not.

Files Fixed

  1. services/auth/app/utils/subscription_fetcher.py

    • Fixed logger.info() call in __init__() method
    • Fixed logger.debug() calls in get_user_subscription_context() method
  2. services/auth/app/services/auth_service.py

    • Fixed multiple logger.warning() and logger.error() calls

Changes Made

Before (Problematic):

logger.info("SubscriptionFetcher initialized", tenant_service_url=self.tenant_service_url)
logger.debug("Fetching subscription data for user", user_id=user_id)
logger.warning("Failed to publish registration event", error=str(e))

After (Fixed):

logger.info("SubscriptionFetcher initialized with URL: %s", self.tenant_service_url)
logger.debug("Fetching subscription data for user: %s", user_id)
logger.warning("Failed to publish registration event: %s", str(e))

Impact

  • Login functionality now works correctly
  • All logging calls use the proper Python logging format
  • Error messages are still informative and include all necessary details
  • No functional changes to the business logic
  • Maintains backward compatibility

Testing

The fix has been verified to:

  1. Resolve the login failure issue
  2. Maintain proper logging functionality
  3. Preserve all error information in log messages
  4. Work with the existing logging configuration

Prevention

To prevent similar issues in the future:

  1. Use string formatting (%s) for variable data in logging calls
  2. Avoid using keyword arguments with the standard logging module
  3. Consider using structlog if structured logging with keyword arguments is needed
  4. Add logging tests to CI/CD pipeline to catch similar issues early