What firmware are you using? Have you updated firmware? There was a bug around promise rejection that was fixed by @Gordonlink
The reason for the rejection is the pucks will disconnect from each other after a minute or two. When you press the button the code thinks it's still connected and tried to use the characteristic and fails. Then the bug cause the exception.
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
What firmware are you using? Have you updated firmware? There was a bug around promise rejection that was fixed by @Gordon link
The reason for the rejection is the pucks will disconnect from each other after a minute or two. When you press the button the code thinks it's still connected and tried to use the characteristic and fails. Then the bug cause the exception.