Right, what’s happening here is that per the standard rules the open action is generating an implicit unlock action (since usually that is player-friendly behavior - it’s a nice convenience). But since you don’t have any specific rules for the unlocking action, it’s failing by default. So you should probably move your response code over to an unlocking rule.
(For the future, the RULES and ACTIONS testing commands can be super helpful for figuring out what’s going on in situations like this!)
Edit: you might want to also consider not relying on an instead rule here - there are some downsides to using them for situations like this one that are actually pretty straightforward applications of the relevant action. Thread with some details here.