Skip to Content

How to fix the ‘Threat feed update failed’ error

This article describes how to troubleshoot the ‘Threat feed update failed’ error when the feed list is configured.

Scope

FortiGate v7.2.0 and later, v7.4.0 and later.

Solution

After the ‘Threat feed’ is configured according to the link:

Threat feeds

If the connection to the URL fails, then the error is shown on the GUI:

If the connection to the URL fails, then the error is shown on the GUI

To validate the connection by CLI it is necessary to run the debug:

diagnose debug application forticron -1
diagnose debug console timestamp enable
diagnose debug enable

Next, a threat-feed refresh is needed. It could be accomplished by one of the following commands:

diagnose test application forticron 8 <----- Reload external resource.
execute update-external-resource <threat-feed name> <----- Only the requested threat-feed will be updated.

After executing one of the above commands, forticron debug will show the following messages:

2024-07-24 12:35:50 2674-init-as: fd=-1 name='ext-053825ae-4937-51ef-6016-f8976124c21a' feed_name='ext-root.IOC-SISAP' http_1=0 loc=0 state=send.body info=0-None chunk=0 content-0=0 etag=0 csum=0 done=0 closed=0
sync-0(len=0 note=0 err=0) buf-1(sz=8192 data=0 free=8192 pos=0 end=0 max=134217728)
2024-07-24 12:35:50 http_request_make()-2155: HTTP request: http

GET /IoC/ExternalThreats/threats.txt HTTP/1.1
Host: 192.168.13.21
User-Agent: curl/7.58.0
Accept: */*
Connection: close

2024-07-24 12:35:50 http_request_make()-2190: fcron_get_addr(192.168.13.21)
2024-07-24 12:35:50 __http_resolv_cb()-1970: fos_epoll_add(22)
2024-07-24 12:35:50 __update_ext()-248: Updating EXT 'IOC-SISAP' with HTTP
2024-07-24 12:35:50 fcron_timer_func()-32: Timer ext_upd done
2024-07-24 12:35:50 fcron_epoll_before_handle()-264: BEFORE WRITE fd 22 handle event 0x04 write 0xd907d0 epoll events 0x04
2024-07-24 12:35:50 __http_connect()-1865: tcps_connect(192.168.13.21) is established.
…
2024-07-24 12:35:50 fcron_epoll_after_handle()-280: AFTER WRITE ret 0
2024-07-24 12:35:50 fcron_epoll_before_handle()-260: BEFORE READ fd 22 handle event 0x01 read 0xd906a0 epoll events 0x01
2024-07-24 12:35:50 __http_recv()-1795: Server [192.168.13.21:80]: read=428 data=428 free=7764
2024-07-24 12:35:50 2674-Loop-handle: fd=22 name='ext-053825ae-4937-51ef-6016-f8976124c21a' feed_name='ext-root.IOC-SISAP' http_1=1 loc=0 state=recv.header info=0-None chunk=0 content-0=0 etag=0 csum=0 done=0 closed=0
sync-0(len=0 note=0 err=0) buf-1(sz=8192 data=428 free=7764 pos=0 end=428 max=134217728)
2024-07-24 12:35:50 2674-__http_recv_handle_header: fd=22 name='ext-053825ae-4937-51ef-6016-f8976124c21a' feed_name='ext-root.IOC-SISAP' http_1=1 loc=0 state=recv.header info=0-None chunk=0 content-0=0 etag=0 csum=0 done=0 closed=0
sync-0(len=0 note=0 err=0) buf-1(sz=8192 data=428 free=7764 pos=0 end=428 max=134217728)
2024-07-24 12:35:50 __http_recv_handle_header()-1419:

HTTP/1.1 404 Not Found
Date: Wed, 24 Jul 2024 18:35:50 GMT
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips
Content-Length: 229
Connection: close
Content-Type: text/html; charset=iso-8859-1

2024-07-24 12:35:50 __http_recv_handle_header()-1435: response code is 404
2024-07-24 12:35:50 __http_recv_handle_header()-1450: Try with HTTP 1.0
2024-07-24 12:35:50 __set_next_retry_time()-225: Next update for ext 'IOC-SISAP' fires in 0 seconds
2024-07-24 12:35:50 ext_update_result()-339: HTTP result=4: __http_recv_handle_header() Try again with HTTP 1.0
2024-07-24 12:35:50 2674-__http_stop: fd=22 name='ext-053825ae-4937-51ef-6016-f8976124c21a' feed_name='ext-root.IOC-SISAP' http_0=1 loc=0 state=recv.body info=0-Resource not found chunk=0 content-0=0 etag=0 csum=0 done=0 closed=0
sync-0(len=0 note=0 err=0) buf-1(sz=8192 data=428 free=7764 pos=0 end=428 max=134217728)
2024-07-24 12:35:50 __http_stop()-734: Close http connect: response code not Accept

After the TCP (three-way handshake) is completed to the web server 192.168.13.21, the FortiGate (HTTP client) sends the ‘HTTP GET’ to obtain the threat feed information for the URL.

The web server responds with the HTTP error code 404 which means that the server could not find the client-requested webpage/URL.

When the connection is successful, after the HTTP GET request, the server will respond with the HTTP 200 OK:

HTTP/1.1 200 OK
Date: Thu, 25 Jul 2024 19:53:46 GMT
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips
Last-Modified: Thu, 25 Jul 2024 19:51:48 GMT
ETag: "8c-61e17b9b2678e"
Accept-Ranges: bytes
Content-Length: 140
Connection: close
Content-Type: text/plain; charset=UTF-8

And FortiGate will updatethe threat feed list:

2674-Remove-header: fd=22 name='ext-053825ae-4937-51ef-6016-f8976124c21a' feed_name='ext-root.IOC-SISAP' http_1=1 loc=0 state=recv.body info=0-None chunk=0 content-1=140 etag=0 csum=0 done=0 closed=0
sync-0(len=0 note=0 err=0) buf-1(sz=8192 data=140 free=8052 pos=0 end=140 max=134217728)
2674-__http_recv_handle_body: fd=22 name='ext-053825ae-4937-51ef-6016-f8976124c21a' feed_name='ext-root.IOC-SISAP' http_1=1 loc=0 state=recv.body info=0-None chunk=0 content-1=140 etag=0 csum=0 done=0 closed=0
sync-0(len=0 note=0 err=0) buf-1(sz=8192 data=140 free=8052 pos=0 end=140 max=134217728)
2674-__http_recv_handle_body_done: fd=22 name='ext-053825ae-4937-51ef-6016-f8976124c21a' feed_name='ext-root.IOC-SISAP' http_1=1 loc=0 state=recv.body_done info=0-None chunk=0 content-1=140 etag=0 csum=0 done=0 closed=0
sync-1(len=140 note=0 err=0) buf-1(sz=8192 data=0 free=8192 pos=0 end=0 max=134217728)
load_ext_ip_line()-2127: invalid ip range 34.25.871 < ---
ext_entry_count_write()-349: 053825ae-4937-51ef-6016-f8976124c21a: wrote 12 entries to file <---

ext_csum_write()-893: ext-053825ae-4937-51ef-6016-f8976124c21a: csum='c0097e05f5ba5bf670f987c983f2a0c7'
ext_update_result()-339: HTTP result=0: Succ
ext_http_etag_write()-829: ext-053825ae-4937-51ef-6016-f8976124c21a: etag='"8c-61e17b9b2678e"'
ext_file_sync()-1250: update done: tag=1
2674-before-init: fd=22 name='ext-053825ae-4937-51ef-6016-f8976124c21a' feed_name='ext-root.IOC-SISAP' http_1=1 loc=0 state=recv.body_done info=1-Succ chunk=0 content-1=140 etag=0 csum=0 done=1 closed=0

This status will be shown on the FortiGate GUI:

This status will be shown on the FortiGate GUI.