This article was created in response to a support issue logged with K2. The content may include typographical errors and may be revised at any time without notice This article is not considered official documentation for K2 software and is provided “as is” with no warranties.

Issue

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:\Debug\SourceCode.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:\Debug\SourceCode.Forms.Web.error" />