cabgo
InicioAcceder

Google Sign-In bloqueado: cliente OAuth en otro proyecto

Que significa el error 409 'Oauth client already exists in a different project', como localizar y borrar el cliente huerfano, y la alternativa de rotar la llave de firma

El sintoma

El boton 'Continuar con Google' de tu app rebota con un mensaje de 'Problema de configuracion', y al intentar registrar la huella de firma el sistema recibe de Google este rechazo literal: 'Oauth client already exists in a different project for package name <tu paquete> and certificate hash <tu SHA-1>' (codigo 409 ALREADY_EXISTS). Significa que en ALGUN proyecto de Google Cloud ya existe un 'cliente OAuth de Android' para esa combinacion exacta de paquete + huella, y Google no permite crear otro en el proyecto nuevo. Es tipico tras migrar la app de una plataforma anterior o de un proyecto Firebase a otro: el cliente OAuth se queda 'huerfano' en el proyecto viejo.

Dos datos que se necesitan siempre: cual proyecto y cual SHA

Para resolverlo hacen falta exactamente dos datos, y quien te acompane en el proceso debe decirtelos con claridad (y tu debes exigirlos): (1) EN QUE PROYECTO de Google Cloud vive el cliente huerfano — el mensaje de Google no lo dice, pero se deduce del historial: es el proyecto donde la app funciono ANTES (el proyecto Firebase de la plataforma anterior, o el proyecto donde se registro la app por primera vez). (2) QUE SHA-1 esta en conflicto — es la huella que aparece en el propio mensaje de error. Ten en cuenta que una app suele tener DOS huellas relevantes: la de tu llave de subida (upload key) y la de Play App Signing (la llave con la que Google firma lo que instalan los usuarios). Ambas se ven en Play Console, en Configuracion -> Firma de apps.

Importante: borrar la huella SHA en Firebase NO lo arregla

Un error frecuente es entrar a Firebase y borrar la huella SHA del proyecto viejo. Eso NO libera el cliente OAuth: son objetos distintos. El cliente OAuth vive en la seccion de Credenciales de Google Cloud Console y sobrevive aunque borres la huella, e incluso aunque elimines el registro completo de la app Android en Firebase. La unica forma de liberarlo es borrar EL CLIENTE OAUTH en si, desde la consola web.

Como borrar el cliente OAuth huerfano (5 minutos, requiere acceso al proyecto viejo)

El borrado es puntual y seguro si sigues los pasos: se elimina UN cliente concreto, identificado por paquete + SHA-1, y nada mas.

1

Entra al proyecto correcto

Abre console.cloud.google.com con una cuenta que tenga acceso al proyecto VIEJO (donde vivio la app antes). Selecciona ese proyecto en el selector superior.

2

Ve a Credenciales

Menu -> 'APIs y servicios' -> 'Credenciales'. Busca la tabla 'IDs de clientes de OAuth 2.0'.

3

Identifica el cliente de Android correcto

Busca la fila de tipo 'Android' cuyo nombre mencione tu paquete (ej. 'Android client for com.tuempresa.app'). Si hay varias, abre cada una: dentro veras el paquete y la huella SHA-1. La que hay que borrar es la que coincide con el paquete Y la SHA-1 del mensaje de error.

4

Borra SOLO ese cliente

Usa el icono de papelera de esa fila. NO borres el cliente de tipo 'Aplicacion web' (romperia otros inicios de sesion) ni toques clientes de otros paquetes.

5

Verifica en tu app

Tras borrar, el registro en el proyecto nuevo ya no recibe el 409. Avisa por el canal de soporte para que se re-registre la huella y se confirme con una prueba real de inicio de sesion (no basta con que la pantalla cargue).

Si nadie tiene acceso al proyecto viejo

Puede pasar que el proyecto viejo pertenezca a una cuenta perdida o a un tercero. Opciones, de menor a mayor friccion: (1) Si sabes que cuenta lo abrio, recuperala (recuperacion de cuenta de Google) e invita como Propietario a la cuenta que gestiona tu proyecto actual — asi el borrado lo puede hacer el equipo tecnico por ti. (2) Si el proyecto era de una plataforma anterior, pide a esa plataforma que borre el cliente OAuth de tu paquete o que te agregue como Propietario del proyecto. (3) Si el proyecto es genuinamente irrecuperable, queda la alternativa de la siguiente seccion: rotar la llave de firma.

Alternativa: rotar la llave de firma (key upgrade)

Google Play permite UNA rotacion de la llave de firma de la app (Play App Signing key upgrade). Al rotar, las instalaciones nuevas quedan firmadas con una llave nueva -> la SHA-1 cambia -> la combinacion paquete+SHA ya no choca con el cliente huerfano y Google Sign-In puede configurarse en el proyecto nuevo sin tocar el viejo. Consideraciones importantes antes de pedirla: (1) Es UNA SOLA VEZ por app en periodos largos — si se gasta, no hay otra hasta que Google lo permita de nuevo. (2) Los dispositivos con la app ya instalada siguen recibiendo actualizaciones sin problema (Google gestiona la transicion), pero funciones atadas a la huella vieja (Google Sign-In con la SHA anterior, enlaces verificados) deben re-registrarse con la huella nueva. (3) El proceso se dispara desde Play Console (Configuracion -> Firma de apps -> 'Solicitar actualizacion de la llave') o lo puede gestionar el equipo tecnico si Cabgo tiene acceso de administrador a tu Play Console. Usala solo cuando el borrado del cliente huerfano sea imposible: borrar el cliente es reversible y no gasta nada; la rotacion es un recurso unico.