Technical Troubleshooting Case: Java App Fails with HTTP 401 (Unauthorized) on Keycloak Admin Client Initialization

๐Ÿ“Œ Problem Summary

A Java Spring Boot application (mdfinfra-ms) fails to start due to a 401 Unauthorized error when initializing a Keycloak admin client. This causes the entire dependency graph of services (ApprovalController, ProjectServiceImpl, etc.) to break during Spring context initialization, ultimately resulting in a fatal UnsatisfiedDependencyException.


๐Ÿ“‹ Context


๐Ÿ” Symptom


HTTP 401 Unauthorized
Keycloak responded with: "invalid_client"
Reason: "Client not enabled to retrieve service account"


๐Ÿงพ Key Evidence

๐Ÿ”น Application Logs


KeycloakAdminConfig - Initializing Keycloak admin client for realm 'test', client 'mdf-test-local-java-admin-client' at '<http://localhost:8134>'.
KeycloakErrorHandler - Unauthorized (401): token missing or expired
SpringApplication - Application run failed: UnsatisfiedDependencyException โ†’ caused by HTTP 401 during bean creation of keycloakAdminInstance