Error 101 Server Did Not Report Size from OTA Upgrade framework via git hub I have tried this video:
ESP8266 Self Update OTA from GitHub
Instruction and made this GitHub repo:
And changed the main code to this type, but I get this error:
HTTP_UPDATE_FAILD Error (-101): Server Did Not Report Size


when the    FirmwareUpdate(); code is running.
So I don't know why GitHub don't answer to the esp8266, as said here:

The error has nothing to do with your sketch. Also, the error code is
not a HTTP 101 error. The problem is that your server does not send
the response header 'Content-Length'

I have some dupt about the bin URL file address which have many dot on the end of it (https://github.com/soheilpaper/ota_github_blink/blob/main/BlinkWithoutDelay.ino.esp8285.bin) on it, could it be the reason for none answering and giving the 101 code form GitHub server!
Any suggestion would be good help to fix this bug.
Update 1:

I have changed the bin file name to this kind :
 BlinkWithoutDelay.ino.esp8285.bin  ----&gt;      BlinkWithoutDelay_ino_esp8285.bin

But I have again the same GitHub 101 error.

Update 2:
Based on the timemage answer, I have changed the address of bin and TXT file by finding the download link of those files form the GitHub. And it has been working by changing the blob part of address to raw, so the bin address changed form https://github.com/soheilpaper/ota_github_blink/blob/main/BlinkWithoutDelay_ino_esp8285.bin to https://github.com/soheilpaper/ota_github_blink/raw/main/BlinkWithoutDelay_ino_esp8285.bin And the https://github.com/soheilpaper/ota_github_blink/blob/main/version.txtto  https://raw.githubusercontent.com/soheilpaper/ota_github_blink/main/version.txt
And now that error has been fixed as you can see below:

Although I gave some dupt about upgrading the main code by getting this output via serial port:
Device already on latest firmware version


And I would check it after some resting!.
Thanks.
The ESP8266httpUpdate library wants to know in advance how large the file is before it starts downloading it.  It wants to know this so it can tell, before trying to download (and program), whether or not there's enough space for it. If the size of the file isn't provided by the server it will report the error that you are seeing.
The size of the file is provided by the web server by means of the Content-Length HTTP response header read by HTTPClient.  This header is received in advance of the file content.
Your main code appears to contain a correct link to raw .bin file,
#define URL_fw_Bin &quot;https://raw.githubusercontent.com/programmer131/otaFiles/master/firmware.bin&quot;, and reports the following headers:
cache-control: max-age=300
content-security-policy: default-src 'none'; style-src 'unsafe-inline'; sandbox
content-type: application/octet-stream
etag: &quot;b2ecfb5dc91587c089acdaace446b0d7b00863c9f42dffb36c7983c103d3a98a&quot;
strict-transport-security: max-age=31536000
x-content-type-options: nosniff
x-frame-options: deny
x-xss-protection: 1; mode=block
via: 1.1 varnish (Varnish/6.0), 1.1 varnish
x-github-request-id: 8728:2B67:9AFD3:AD0EC:6008FCFF
accept-ranges: bytes
date: Thu, 21 Jan 2021 04:03:32 GMT
x-served-by: cache-bos4651-BOS
x-cache: MISS, HIT
x-cache-hits: 0, 1
x-timer: S1611201812.154162,VS0,VE1
vary: Authorization,Accept-Encoding
access-control-allow-origin: *
x-fastly-request-id: bfc9702929b91be55d7aa040465a230436918e01
expires: Thu, 21 Jan 2021 04:08:32 GMT
source-age: 20
content-length: 270016

The content-length: 270016 at the bottom shows that this should work.  But your changed code that uses #define URL_fw_Bin &quot;https://github.com/soheilpaper/ota_github_blink/blob/main/BlinkWithoutDelay_ino_esp8285.bin is to the HTML page for downloading the file, which does not report Content-length, for me anyway, but then it's the wrong URL anyway.
Regarding the &quot;101 error&quot;, it's -101 (negative) defined here, and like they said, it is not an HTTP status code,  it is just a value used by the ESP8266httpUpdate library.