3 Answers
3

What you can do, when you encounter Ajax problems, is to add the <a4j:log> component:

<a4j:log popup="false"/>

This will create a box in your page with all the Ajax logs from Richfaces. Eventually, you can set popup="true" and then display the popup by Ctrl + Shift + L

There are many logs in this panel, but generally the important things to look at is the WARN or ERROR messages.

Other concern about your error message: it is talking about some ajaxSingle processing. In your JSF code, you have no ajaxSingle attribute defined. When does this error happens? When you start typing some characters in your inputText component?

Isn't there any conditional rendering (rendered="#{some expression}") around this input and suggestion components? Or an iteration?

Does .suggest() action get invoked before this error?

Situations like you've described happen when an action-related (causing) component is within a conditional render (or an iteration) which does not allow a component to be created on RestoreView phase. Then action is not called at all and component-id is not found in the component tree.

First render - only one, second button is rendered. If setValueInActionHandler sets some value and displays the same page - first button ("appears after action") will get rendered too. But clicking it won't fire a callOtherAction - because on second request, during RestorePhase valueInActionHandler is empty again, so action1 will not be available...