A while back, Norway told me that they wanted me to move some of the troops along their border. A little bit later, Norway launched a surprise attack against me. When I moved my troops to defend, the game informed me that I had broken my promise.
Technically, I did move my troops back to the border, but it's absurd to think any leader would expect you not to defend yourself if attacked. It seems fairly obvious that this promise should be either nullified or immediately considered "kept" if the leader to which you made the promise attacks you. (I can see an argument for either of these, but I can't imagine any actual human over the age of ten arguing that you have to keep your troops away while he or she is attacking you. This is "why are you hitting yourself" territory.)
Civilization VI 1.0.0.26 (221715)
DirectX 11
Windows 10.0 build 14393, 64 bit
PS: I would imagine that there's a related, trickier issue that can happen if three civilizations share a border. Luxembourg asks France not to put troops along their shared border. Germany invades France near the Luxembourg border, and Luxembourg stays neutral. France moves troops to defend against the invasion. Is France's promise to Luxembourg broken? Absent more diplomacy, I think the answer is probably "yes." Luxembourg would probably still be unhappy about the large armies near their border, and it would still be easy for France to launch an attack with that army. Alternately, the game could achieve that additional diplomacy by popping up a special dialog that allows you to say "I only intend to fight with Germany," and France would receive an extra warmonger penalty if this turned out to be a lie.
Technically, I did move my troops back to the border, but it's absurd to think any leader would expect you not to defend yourself if attacked. It seems fairly obvious that this promise should be either nullified or immediately considered "kept" if the leader to which you made the promise attacks you. (I can see an argument for either of these, but I can't imagine any actual human over the age of ten arguing that you have to keep your troops away while he or she is attacking you. This is "why are you hitting yourself" territory.)
Civilization VI 1.0.0.26 (221715)
DirectX 11
Windows 10.0 build 14393, 64 bit
PS: I would imagine that there's a related, trickier issue that can happen if three civilizations share a border. Luxembourg asks France not to put troops along their shared border. Germany invades France near the Luxembourg border, and Luxembourg stays neutral. France moves troops to defend against the invasion. Is France's promise to Luxembourg broken? Absent more diplomacy, I think the answer is probably "yes." Luxembourg would probably still be unhappy about the large armies near their border, and it would still be easy for France to launch an attack with that army. Alternately, the game could achieve that additional diplomacy by popping up a special dialog that allows you to say "I only intend to fight with Germany," and France would receive an extra warmonger penalty if this turned out to be a lie.