Why Do I Get Net: :Err_Http_Response_Code_Failure with 404 Status Code

Why Do I Get Net: :Err_Http_Response_Code_Failure with 404 Status Code

I am writing a simple c# web server and whenever it gives a status of 404 I always get net::ERR_HTTP_RESPONSE_CODE_FAILURE instead of 404. All The other statuses work fine but this one. I tried looking for spelling mistakes but everything looks correct and also it shows failed to load resource instead of get example.com 404 (Not Found) like on every other website. I am mainly wondering why the response is different when compared to other websites.

Here the example of the response that gives these results:

HTTP/1.1 404 Not Found
Date: 
Server: MADSC
Content-Length: 196
Content-Type: text/html

Here the code that generates the response

    public void WriteToStream(Stream stream)
    {
        try
        {
            string httpHeaders;

            if (dataPath.Length > 0)
            {
                FileStream fs = new FileStream(dataPath, FileMode.Open, FileAccess.Read);

                long streamSize = fs.Length;

                httpHeaders = GenerateHttpHeaders(streamSize);

                WriteHttpHeadersToStream(httpHeaders, stream);

                fs.CopyTo(stream);

                return;
            }

            int dataSize = data.Length;

            httpHeaders = GenerateHttpHeaders(dataSize);

            WriteHttpHeadersToStream(httpHeaders, stream);

        }
        catch (Exception e)
        {
            Console.WriteLine("Exception While Writing Response:" + e.ToString());
        }
    }

    string GenerateHttpHeaders(long dataSize)
    {
        //Gets Response Code Discription
        string responseCodeText = HttpResponseCodes.ResponseCodeText(responseCode);

        //Creates And Adds Status Line
        string httpStringData = $"HTTP/1.1 {responseCode} {responseCodeText}\n";

        //If Present Adds Headers
        httpStringData += HeadersToString();

        httpStringData += $"Date: \nServer: {server}\n";

        httpStringData += $"Content-Length: {dataSize}\nContent-Type: {contentType}\n";

        //Adds Data Seperator
        httpStringData += "\n";

        return httpStringData;
    }
1
Maya Lin-Takahashi
Author

Maya Lin-Takahashi

Maya is a hardware enthusiast who tests and reviews smart home devices, smartphones, wearables, and audio gear. She focuses on practical consumer value and build quality.