As I mentioned in a previous post I have been working on some sample demonstration material for The Blackbaud Conferences in London and Washington DC. I got a timeout error previously on saving data in a custom form. I was able to fix it entirely by fluke without knowing how I did it. However now I have got it again and it has been driving me crazy.
The error means very little and there is clearly an underlying issue. I am documenting what I did so that if I ever get it again I will know what the issue is. For reference this error was received on BBEC version 2.6. I was updating a table with a custom form.
I had a time field on the form. When you implement this using the control that Blackbaud supplies already bound to the field, it gives you a plain text field. This is not very useful for data entry as the user could enter any value. I decided to use a masked text box instead. However this masked text box does not have the extension bounding fields that all the other controls are enhanced with. I later set this field with the value. However on the load of the field it was not bound. What I realised was that if you do not have all the fields bound on the form then you get this error.
When I changed the edit spec so that it used the default form (a technique that I would recommend to eliminate any issues with your custom form), it worked fine. When I recreated the form with all the fields present it worked fine. I tried to remove one field, unconnected to the time text box field, and this produced the same error message.
The error does not come up with the add spec so it is clearly something going on during the loading of the form. Looking at the stack trace it looks like it tries to load the form first to retrieve any “missing” values.