{"record":{"id":"435c80295f0833bc","repo":"home-assistant/core","slug":"serial-mismatch","errorCode":"serial_mismatch","errorMessage":"The serial number for {device} doesn't match the one in the configuration. It's possible that the two Brother printers have swapped IP addresses. Restore the previous IP address configuration or reconfigure the devices with Home Assistant.","messagePattern":"The serial number for (.+?) doesn't match the one in the configuration\\. It's possible that the two Brother printers have swapped IP addresses\\. Restore the previous IP address configuration or reconfigure the devices with Home Assistant\\.","errorType":"exception","errorClass":"ConfigEntryError","httpStatus":null,"severity":"error","filePath":"homeassistant/components/brother/__init__.py","lineNumber":52,"sourceCode":"    try:\n        brother = await Brother.create(\n            host, port, community, printer_type=printer_type, snmp_engine=snmp_engine\n        )\n    except (ConnectionError, SnmpError, TimeoutError) as error:\n        raise ConfigEntryNotReady(\n            translation_domain=DOMAIN,\n            translation_key=\"cannot_connect\",\n            translation_placeholders={\n                \"device\": entry.title,\n                \"error\": repr(error),\n            },\n        ) from error\n\n    coordinator = BrotherDataUpdateCoordinator(hass, entry, brother)\n    await coordinator.async_config_entry_first_refresh()\n\n    if brother.serial.lower() != entry.unique_id:\n        raise ConfigEntryError(\n            translation_domain=DOMAIN,\n            translation_key=\"serial_mismatch\",\n            translation_placeholders={\n                \"device\": entry.title,\n            },\n        )\n\n    entry.runtime_data = coordinator\n\n    await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)\n\n    return True\n\n\nasync def async_unload_entry(hass: HomeAssistant, entry: BrotherConfigEntry) -> bool:\n    \"\"\"Unload a config entry.\"\"\"\n    return await hass.config_entries.async_unload_platforms(entry, PLATFORMS)\n","sourceCodeStart":34,"sourceCodeEnd":70,"githubUrl":"https://github.com/home-assistant/core/blob/58a3fdb3ea0538617f0a07efcfba6294de64fd59/homeassistant/components/brother/__init__.py#L34-L70","documentation":"ConfigEntryError with translation_key 'serial_mismatch', raised after the first coordinator refresh when the discovered printer's serial (brother.serial) does not equal the config entry's unique_id. The integration keys configuration by serial, so a mismatch means the entry is now talking to a physically different printer.","triggerScenarios":"Two Brother printers swapped IP addresses (DHCP renewal), so the entry's host now resolves to the other printer; entry configured against a printer that was replaced by another unit reusing the old IP.","commonSituations":"Classic swapped-IPs scenario with two identical Brother printers on one network; replacing a failed printer with a new one at the same IP; restoring a router that hands out different leases.","solutions":["Set DHCP reservations for each printer so each keeps a stable, distinct IP","Reconfigure the entry's host to point at the original printer (Options flow / reconfigure)","If the original printer is gone for good, delete the entry and set up a new one for the replacement"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"# Before relying on the entry, compare reported serial vs entry unique_id\nserial = coordinator.brother.serial.lower()\nexpected = entry.unique_id\nserial_matches = (serial == expected)\nif not serial_matches:\n    # stop automations; fix IP assignments before proceeding","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Assign DHCP reservations per printer MAC so IPs never swap","After any router change, verify each Brother entry still reaches its original serial","Never reuse an old IP for a replacement printer without deleting the old HA entry"],"tags":["brother","serial-mismatch","dhcp","config-entry","home-assistant"],"backgroundTag":null,"analyzedSha":"58a3fdb3ea0538617f0a07efcfba6294de64fd59","analyzedAt":"2026-08-14T20:54:38.818Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}