Overview
Since we implemented Schlage v2 in November 2024, lock programming is now asynchronous. We issue the "Set / Update Access Code" API call, and the Schlage servers immediately respond with an "Okay" command before the lock has actually been updated. This response does not mean the lock access code succeeded or failed but it does give us a command I.D. to look up the state.
Additionally, Schlage will send webhooks with status updates if the command succeeds, fails, or times out. To handle missing webhooks, we have a SchlageDoorCodeSyncService that runs and looks for any pending commands that are older than 5 minutes that will look up the status and fail/complete as applicable.
Event Flow
Common Issues
Access code/code name are already in use OR Access code ID not found on device
The initial API calls work (step 2), but the webhook/sync service comes back and says the access code/code name is already in use.
The explanation we got from Schlage about this is the API servers, and the physical lock hardware are suffering from a "split-brain" situation. The database of codes on the lock does not match the list of codes the API servers are aware of. According to Schlage, at the time we reported this error, there was no way for the lock hardware to send the API servers the list of codes it had to resolve the data mismatch. The only solution to fix this problem is to delete all the codes on the lock and set them up again. Users can use the "Delete All" button in the Schlage Home app.
Commands frequently timeout
Commands frequently, but sporadically, timeout. Manually resyncing the code can help, but users want it to work on the first try.
We have raised this to Schlage multiple times, and while they are aware it happens, they have not been able to offer a solution. They generally blame "real world factors", which could include:
- Poor Wi-Fi coverage on-site
- Intermitted internet connectivity on-site
- Low/poor quality batteries
- Unreported service interrupts with Schlage's API servers
Users should try:
- Relocating access points closer to the door lock or adding Wi-Fi repeaters
- Reboot the internet router/modem
- Replace the batteries in the lock
- Open a support ticket with Schlage: https://www.schlage.com/en/home/contact-us.html
Door Code Sync Service shows a "Nack" state
This indicates there is no acknowledgement from the lock. Users should try the same interventions for environmental factors listed in the "Commands frequently timeout" section above or reach out to Schlage support.
"Schedule parameters are not valid" Error
We have an open request with Schlage about this and are waiting on more information.
https://developersupport.allegion.com/hc/en-us/requests/25566
"User not found in the device" Error
According to Schlage, this is due to a lock desync issue, and they are currently working on a fix. Users should try the "Delete All" to remove all the codes, and if that doesn't work, to factory-reset.
https://developersupport.allegion.com/hc/en-us/requests/52258
"Unrecognized job state" Error
This is an error saying that the booking is not associated to a lock, meaning that the Settings > Door Locks > Schlage pages need to be verified for active connection and correct property mapping.