Troubleshoot E-Sign Forms
Write the PDF to Disk
Normally, you will not be able to view PDF files generated to send to the e-sign partner until after they are signed and saved in your provider’s database. The view of the PDF returned from the e-sign partner is not the actual PDF, but instead a rasterized image of the PDF document created by the e-sign partner. Internally, Forms Builder has this initial PDF data contained within the workflow and model, and in the last step during the GetSignedDocument activity, retrieves the signed PDF from the e-sign partner, so that you can save it.
However, as a troubleshooting tool, you can enable the writing of the PDF to disk at the time it is returned from the conversion process and before being sent to the e-sign partner. To do so, locate the <appSettings> section in your Renderer web.config, and if the following do not exist, add them.
<add key="SaveViewCreatorPDFToDisk" value="false" />
<add key="SaveViewCreatorPDFToDiskPath" value="" />
Setting the first one to true will cause the file to be written to disk in the C:\Logs directory. To change the path, override the location with the 2nd key. However, you must ensure the directory you choose is writable by the currently configured IIS web service Application Pool Identity.
Error Code "TAB_OUT_OF_BOUNDS" - DocuSign
If you see the following error in the Renderer log for a form sequence with DocuSign components, you are likely submitting multiple Forms Builder forms as a single DocuSign envelope:
2017-05-25 11:40:17.9980 25 Error Cmc.Nexus.FormsBuilder.Services.DocuSignService DocuSign.eSign.Client.ApiException: Error calling CreateEnvelope: {"errorCode": "TAB_OUT_OF_BOUNDS", |
To work around this error from DocuSign, ensure that DocuSign controls are not split across page boundaries.
The following styles enforce the default page breaks. They can be modified as needed. Copy the styles and save your changes in a custom style sheet. For more information, see Custom Content and Custom Styles.
/* The following is used during PDF creation for DocuSign and forces page breaks before each form except the first form. This can be commented or modified if some other pagination scheme is desired. */ @media print { #viewCreatorForm > div:not(:first-child) { page-break-before: always; } } /* The above @media print does not address page breaks within a long form. DocuSign may reject PDF files where DocuSign signatures cross page boundaries in the PDF files, usually with an error like "TAB_OUT_OF_BOUNDS". Adding appropriate pages breaks is best accommodated by adding an HTML component in the form anywhere a page break is required. Leave the HTML control empty but add the unique class name on the Class property setting: forms_builder_page_break. This will force a page break in the PDF file before the control. */ @media print { .forms_builder_page_break { page-break-before: always; } }
On any longer forms that spread across multiple pages when converted to PDF, we recommend that you drop an HTML component with Class forms_builder_page_break
in a location on your form that will ensure the DocuSign component does not cross a page boundary.
E-Sign Document is Blank
If an e-sign document is blank, check the URL in the PrintUrlToPdf activity. If one URL character is wrong or spaces are not substituted with “+”, the target PDF will be empty. To verify you have the proper URL, check it with ViewCreator just after you have entered data on the form to be converted. Open a separate tab and ensure your form is displayed at the following URL:
http://<server><domain>:<port>/#/viewCreator/WorkflowDefinitionId/forms=FormName
On a slow server the time before the converter starts may not be sufficient. In the Renderer web.config the default setting for ViewCreatorDefaultStartConversionTimerInMilliseconds is 500. Try increasing it to 1000.
Note: Ensure that e-sign components and the Form Section they are contained in DO NOT have Visible set to false (as that will also hide from the e-sign partner). Use the build-in style hideDocuSignWhiteSpaceInFormSection in the Class property of the Form Section instead.
PrintUrlToPdf Times Out
In Forms Builder 3.3 and later, the viewCreator wait is no longer timer-based, it is now event-based. Forms may need to be re-saved, which will automatically update components to include a call to the event-based method "cmc-on-initialized".
If the PrintUrlToPdf activity times out, especially when many documents are merged into a single PDF file, simply re-save all forms in the sequence.
Hyperlinks Display with Target URL in Parentheses
If a PDF displays the target URL of a link in parentheses after the link text:
Click here (http://google.com)
Add the following to a custom style sheet in the /Content/Custom/
folder on the Renderer website:
@media print { a[href]:after { content: none !important; } }
The result is a proper link like this: Click here
Webhook Responses for Multiple Signer Sequences
Please confirm if all of these WebhookController messages at INFO level are seen in the log and that the workflow returns back to sequence after completing the DocuSign signatures. Similar messages are also logged for Adobe Sign and SignNow multi-signer sequences.
INFO - Cmc.Nexus.FormsBuilder.Renderer.Web.Controllers.WebhookController: Starting WebhookController - Post ...
INFO - Cmc.Nexus.FormsBuilder.Renderer.Web.Controllers.WebhookController: WebhookController - Envelope returned from DocuSign:
INFO - Cmc.Nexus.FormsBuilder.Renderer.Web.Controllers.WebhookController: WebhookController - Envelope Status: Delivered
INFO - Cmc.Nexus.FormsBuilder.Renderer.Web.Controllers.WebhookController: Starting WebhookController - Post ...
INFO - Cmc.Nexus.FormsBuilder.Renderer.Web.Controllers.WebhookController: WebhookController - Envelope returned from DocuSign:
INFO - Cmc.Nexus.FormsBuilder.Renderer.Web.Controllers.WebhookController: WebhookController - Envelope Status: Completed
INFO - Cmc.Nexus.FormsBuilder.Renderer.Web.Controllers.WebhookController: WebhookController - Searching for Workflow Instance Id: 664191dc-55ff-4c37-8a27-59d649de3141
INFO - Cmc.Nexus.FormsBuilder.Renderer.Web.Controllers.WebhookController: WebhookController - Status of “Signer1” is: Completed
INFO - Cmc.Nexus.FormsBuilder.Renderer.Web.Controllers.WebhookController: WebhookController - Status of "Signer2" is: Completed
INFO - Cmc.Nexus.FormsBuilder.Renderer.Web.Controllers.WebhookController: WebhookController - Found variableToSet: signer2Complete for Workflow Instance Id: 664191dc-55ff-4c37-8a27-59d649de3141
INFO - Cmc.Nexus.FormsBuilder.Renderer.Web.Controllers.WebhookController: WebhookController - ResumeBookmark: Continue when all signatures are collected; Instance Id: 664191dc-55ff-4c37-8a27-59d649de3141
INFO - Cmc.Nexus.FormsBuilder.Renderer.Web.Controllers.WebhookController: WebhookController - Calling FormInstanceService ExecuteBookmarkNow method for Instance Id: 664191dc-55ff-4c37-8a27-59d649de3141
The next line is the LogLine from back in the workflow:
2020-10-21 21:18:32.7880 INFO- Cmc.Core.Workflow.Activities.LogLine
Note: You will see Workflow Instance Id values that are specific to your workflows.