How to troubleshoot Extender controls must be registered using RegisterExtenderControl() error
kbt130704
PRODUCTIssue
Error message "Extender control is not a registered extender control. Extender controls must be registered using RegisterExtenderControl() before calling RegisterScriptDescriptors(). Parameter name:extenderControl." does not allow to isolate its root cause as it does not contain any indication of specific control causing this error.
Symptoms
The following error message appears from time to time on SmartForms runtime affecting all users:
Extender control is not a registered extender control.
Extender controls must be registered using RegisterExtenderControl() before calling RegisterScriptDescriptors(). Parameter name:extenderControl. SmartForms app pool resolves this issue.
Troubleshooting Steps
This error is normally caused by some control, but GUID presented in the error message does not refer to actual control causing error. There is no way to troubleshoot this type of error without additional logging enabled.
To investigate such type of errors it is necessary to have additional SmartForms logging enabled and in addition to that all custom controls installed in the environment have to be reviewed.
Such exception always points to the table control GUID (table control is just a table-layout which you create on forms/views to place other controls inside of it) whereas actual error caused by another control which resides inside of this table. The original error is lost and replaced with the table control generic error since the rendering continues and the table was not correctly added due to the underlying error.
However if additional error logging is enabled and the folder "C:debug" is present with write permissions for authenticated users then it is possible to see the underlying error. To investigate this properly it is necessary to enable additional logging and leave it enabled until the issue reoccurs again. Settings to enable this logging in SmartForms Runtime web.config:
<add key="Forms.Global.ErrorLogging.Enabled" value="true" />
<add key="Forms.Global.Logging.Enabled" value="true" />
<add key="Forms.Global.ErrorLogging.FilePath" value="C:DebugSourceCode.Forms.Web.error" />
Another approach will be to do an inventory of custom controls deployed in your environment - quite often such type of errors may be caused by the outdated or misbehaving custom control. Solution may be as easy as updating/removing the incompatible control.
<add key="Forms.Global.ErrorLogging.Enabled" value="true" /><add key="Forms.Global.Logging.Enabled" value="true" />
<add key="Forms.Global.ErrorLogging.FilePath" value="C:DebugSourceCode.Forms.Web.error" />