DevDisasters

An Epic FAIL for this Web Service

The office where Peter L. works was abuzz with excitement one morning a few months ago when the familiar, bland corporate art was missing from the wall opposite the elevators. In its place was a brand new 50-inch Plasma TV. Someone who lived nearby offered to run home and grab his Xbox for a little lunchtime gaming.

The big reveal happened later that day when Peter launched the server process that provided a continuous feed of the company's metrics through a dashboard displayed in stunning 1080p resolution. Everyone was amazed by the eye-catching graphs -- and impressed that Peter was able to include some extras like local weather, stock prices and a daily "Trivia Challenge."

Garbage in, Beauty Out
The new system relied on a bidirectional data feed run by an outside vendor. Automated processes fetched and uploaded data from local sources. Every 15 minutes, another automated process fetched the latest round of graphs and slides from a Web service.

Peter loved the interface and management loved the results. However, those warm feelings all went away one day when the Web service decided to fail spectacularly and returned the following:

<?xml version="1.0"?>
<HttpResponse>
<StatusCode>InternalServerError</StatusCode>
<StatusDescription>Internal Server Error</StatusDescription> 
<WebHeaders>
<X-Backside-Transport>FAIL FAIL,FAIL FAIL,FAIL FAIL</X-Backside-Transport>

To make matters worse, rather than show an old set of metrics and graphs -- presumably owing to some bug -- the screen showed the contents of the XML file.

Frustrated, Peter contacted the vendor's IT support. The technician explained that they were aware of the issue and were working toward a solution. As Peter would undoubtedly have to report the status of the Web service, which was deemed "mission-critical" to his higher ups, he asked for an ETA on a fix. The support guy replied, "We're close! You should see something soon!" Peter hung up the receiver and waited … for what, though, he wasn't sure.

Waiting and Waiting...
About two and a half hours and four cups of coffee later, a jittery Peter clicked his mouse and tried calling the Web service for what must have been the 10,000th try, pacing nervously from his desk to the hallway to see if anything had changed. Much to his surprise, this time, the reply from the service was different:

<?xml version="1.0"?>
<HttpResponse>
<StatusCode>OK</StatusCode>
<StatusDescription>OK</StatusDescription>
<WebHeaders>
<X-Backside-Transport>OK OK,OK OK,OK OK</X-Backside-Transport>

If this was the back-end XML that nobody ever saw, Peter might have been doing a dance of joy at that point, but unfortunately things weren't exactly, well, "OK." Viewers were still being treated to almost the same raw, incomplete XML as before, just this time with OK in place of the Error/FAIL messages.

Helpful Advice
Peter contacted support again. The technician explained that the issue was still under investigation and the only "fix" made so far was to change the status codes to something more "friendly" and also to show that they were working on it. He suggested Peter keep checking the Web service, and that he might want to find an alternate media source in the meantime until the problem could be resolved.

As Peter hung up, he wondered if his coworker's offer to fetch his Xbox was still on the table.

About the Author

Mark Bowytz is a contributor to the popular Web site The Daily WTF. He has more than a decade of IT experience and is currently a systems analyst for PPG Industries.

comments powered by Disqus
Upcoming Events

.NET Insight

Sign up for our newsletter.

I agree to this site's Privacy Policy.