A: 

Looks like the postback request might be truncated. Can you check the size of the ViewState?

Per Erik Stendahl
+1  A: 

I found the problem. In response to an ajax request with the AjaxPro Library, I render controls like so-

Page page = new Page();

/*Not the exact way I init the control. But that's irrevelant*/
Control control = new Control();
page.Controls.Add(control)
string controlHtml;

using(StringWriter sw = new StringWriter())
{
   HttpContext.Current.Server.Execute(page, sw, false);
   controlHtml = sw.ToString();
}

The problem with this approach is that asp .net ALWAYS adds a hidden input field for viewstate. Some other hidden fields like eventtarget, eventargument, eventvalidation are added depending on the controls your page/controls contains. Then when I append the resulting html to an existing DOM element on the client side, quite obviously there are duplicate hidden input fields with the same name and id resulting in the view state corruption.

Solution?

Strip the generated html of these tags using regex (if you're good at it) or string compare/search etc functions.

abjbhat