rubysinatrahelicontech

Sinatra-Synchrony is causing HttpProtocolException: HTTP-headers - are expected Error for some users


I have a webapp that updates data in Pardot through one of their API's.

The webapp is coded with Sinatra. The user adds the api url and a csv file with the data that needs to be updated in a form and hits submit. The code parses the csv data and sends it to the url that was provided. The back end server is Windows Server 2008 R2 with IIS 7.5 and HeliconZoo.

Because of performance issues Helicon tech support pointed me to Sinatra::Synchrony and I decided to implement it.

I tested it on multiple different computers with different OS's and browsers and everything works good. Performance was noticeably faster when more then one computer was connected and had submitted the form.

The problem I have is that some users keep getting this error after every time they submit the form:

Error
Helicon Zoo module has caught up an error. Please see the details below.
Worker Status
  %WorkerStatus%
Windows error
  %WindowsError% 
Internal module error
 message: HTTP-headers - are expected
 job: JobHttp[#3] - /
 transportStatus:Online
 getErrorMessage:
 RAW output bytes:0
 RAW output Begin
 Empty stderr
 End

type: ZooException
file: JobHttp.cpp 
line: 266
version: 1.1.57.268

Even though they get this error the data was sent to Pardot successfully.

Here is an entry from the ZooError.log file:

[10/24/2012 10:44:01]   HttpProtocolException: HTTP-headers - are expected

job: JobHttp[#212]  - / 

transportStatus:Online 

getErrorMessage: 

RAW output bytes:0

RAW output Begin

Empty stderr

End

Where do I even start to troubleshoot this error?


Solution

  • I want to thank Tony for offering to help but this error didn't have anything to do with Helicon Zoo. The errors that were displayed on the screen from Zoo weren't any help but this ended up being an issue with my own code.

    I was sending data to Pardot that came from a csv file. The users where creating the .csv files from excel by copying from one excel sheet to the other. By doing this excel was copying a bunch of blank lines and these blank lines were then saved into the csv file.

    So...once I checked for blank rows in the csv file:

    if !row.empty?
    

    I stopped getting the error.