Get-WFFarm and Troubleshooting Register-SPWorklfowService

I was helping a colleague configure workflow on his SharePoint development environment when we ran into an issue running the Register-SPWorkflowService cmdlet:

Register-SPWorkflowService : An internal error occured. For more details, please see the server logs. Client ActivityId : af6ae27e-02cc-4aed-914d-a59d21d23427. At line:1 char:1 + Register-SPWorkflowService -spsite https://siteUrl/sites/Site ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidData: (Microsoft.Share...WorkflowService: RegisterSPWorkflowService) [Register-SPWorkflowService], InternalServerExc eption + FullyQualifiedErrorId : Microsoft.SharePoint.WorkflowServices.PowerShell .RegisterSPWorkflowService

Prudently following the instructions of the error message we reviewed the ULS logs and found this message coupled with another error message containing even less information about what was actually wrong.  So we ran through a few troubleshooting steps that may be helpful if you are going through this same issue:

1.) Use Get-WFFarm to figure out your WorkflowHostUri.  When you run Get-WFFarm, it lists the URI of your workflow site along with the HTTP/HTTPS ports and a myriad of other information, so it’s really helpful if you’ve forgotten those settings.

2.) Make sure you can hit your workflow site in the browser.  You should see an XML response if everything is working.  If not you can try the next couple of things on the list.

3.) Review your IIS bindings for conflicts.  You need to make sure another web application isn’t catching the request.

4.) Check your DNS.  Make sure the URL you use resolves to an IP address that hits your IIS site.

5.) Make sure that the protocol used in the URL matches your ports number for that protocol.  One time I accidentally used the HTTP port with the HTTPS protocol and that does not work.

6.) Change the Application Pool account.  This is what resolved the issue for us this time around, but unfortunately I do not have exacting details on why or what permissions are required for an account to be valid.  We ended up using a fairly high-powered  administrative account (do NOT try in production) and the the issue went away.

Hopefully that helps!