I programatically created a command button. I did not set id and leave framework to assign id to it. This button has ajax behavior attached.
In client side, it has an generated name, but not id. My client framework(YUI 3) adds an ID to it. When ajax event is triggered, the javax.faces.source is set to client-generated ID. This client-generated ID does not correspond to any component in server. So action associated with button is not invoked.
As a workaround, I just explicitly set an ID to the button. By this way, both ID and name are presented in the client side.
I think the javax.faces.source should point to name attribute instead of ID attribute. Or you can generate both ID and name at server all the time.