I recently had an experience with a 'Principal Architect' (who has been with the company for 12 out of the 15 years its existence). He forwarded me a defect with a comment saying that it's caused by some code I recently added.
I investigated it and found that the cause was something in his code. I wrote him back a paragraph explaining the exact location and root cause of the problem. I suspected that this defect was invalid and the code was working as intended.
The next day, he sent it back, with a comment saying 'No, you're wrong, it has nothing to do with what you wrote. The problem is here.' and he referenced the same piece of code in the first comment.
I figured he maybe didn't understand my explanation, so I sent it back to him again with a different approach at explaining it, and offered to show him what I'm talking about if he wants to stop by my desk.
Again, he returns the defect to me: 'I already told you where the problem is, please fix it.' At this point, I'm at a total loss; I haven't experienced this in 8 years of working as a software engineer.
I passed it off to my manager and explained the situation. He immediately saw that I was right and went to deal with the architect. If the architect had even looked at the code he was accusing, there were at least four different things that would have confirmed that it wasn't related to his problem.
My manager gets this behavior from other teams regularly, and his solution is to become passive-aggressive, bordering on aggressive, and intimidate the other party until they concede. I don't think this is ideal, and it only really works because most developers tend to be non-confrontational, but I can't see any other solution in scenarios like this.
What is the correct way to deal with a colleague who behaves like this? Is there even a correct way?