diff --git a/app/services/cwmp/main_state_machine.ts b/app/services/cwmp/main_state_machine.ts index 373799d..0efb6c7 100644 --- a/app/services/cwmp/main_state_machine.ts +++ b/app/services/cwmp/main_state_machine.ts @@ -135,7 +135,10 @@ class DiscoveringParametersState extends DeviceState { context.device.setGpnStatus('unsupported') context.device.recordGpnFailure() - // Persist circuit breaker state immediately so it survives session drops + // GPN failed → classify params via catalog instead + reclassifyDeviceFromCatalog(context.device) + + // Persist device with classification + circuit breaker state try { const hashId = getDeviceHashIdentifier({ manufacturer: context.device.deviceId.manufacturer, @@ -157,15 +160,12 @@ class DiscoveringParametersState extends DeviceState { }) logger.info( { hashId, gpnStatus: context.device.gpnStatus, circuitBreaker: context.device.gpnCircuitBreaker }, - '[DiscoveringParameters] Persisted GPN failure state to DB' + '[DiscoveringParameters] Persisted GPN failure + catalog classification to DB' ) } catch (e) { logger.error(`Failed to persist GPN circuit breaker state: ${e}`) } - // GPN failed → classify params via catalog instead - reclassifyDeviceFromCatalog(context.device) - return { nextState: new CriticalReadsState(), response: '' } }