FortiGate 600F no longer loads routing disco module after firmware update to 7.4.x series

FortiGate 600F (new product line), LibreNMS was correctly pulling BGP routing data, but after a firmware update on the FortiGate the routing module throws an error (below), even after putting the most recent FortiGate MIBs in /opt/librenms/mibs/fortinet/

Error from lnms poller:discovery:

#### Load disco module route ####
RFC1213 Error discovering route module for 192.168.25.136. TypeError: ip2long(): Argument #1 ($ip) must be of type string, array given in /opt/librenms/LibreNMS/Util/IPv4.php:74
Stack trace:
#0 /opt/librenms/LibreNMS/Util/IPv4.php(74): ip2long()
#1 /opt/librenms/includes/discovery/route.inc.php(87): LibreNMS\Util\IPv4::netmask2cidr()
#2 /opt/librenms/includes/discovery/functions.inc.php(172): include('...')
#3 /opt/librenms/discovery.php(108): discover_device()
#4 {main}
ip2long(): Argument #1 ($ip) must be of type string, array given {"exception":"[object] (TypeError(code: 0): ip2long(): Argument #1 ($ip) must be of type string, array given at /opt/librenms/LibreNMS/Util/IPv4.php:74)"}

>> Runtime for discovery module 'route': 0.8080 seconds with 680120 bytes
>> SNMP: [2/0.10s] MySQL: [7/4.43s] RRD: [0/0.00s]
#### Unload disco module route ####

Output of ./daily.sh and ./validate.php:

Updating to latest codebase                        OK
Updating Composer packages                         OK
Updated from d66e154bf to fb8c958b2                OK
Updating SQL-Schema                                OK
Updating submodules                                OK
Cleaning up DB                                     OK
Fetching notifications                             OK
Caching PeeringDB data                             OK
===========================================
Component | Version
--------- | -------
LibreNMS  | 25.3.0-20-gfb8c958b2 (2025-03-20T05:15:35-05:00)
DB Schema | 2025_03_11_031114_drop_ospfv3ifinstid (321)
PHP       | 8.3.6
Python    | 3.12.3
Database  | MariaDB 10.11.8-MariaDB-0ubuntu0.24.04.1
RRDTool   | 1.7.2
SNMP      | 5.9.4.pre2
===========================================

[OK]    Composer Version: 2.8.6
[OK]    Dependencies up-to-date.
[OK]    Database connection successful
[OK]    Database connection successful
[OK]    Database Schema is current
[OK]    SQL Server meets minimum requirements
[OK]    lower_case_table_names is enabled
[OK]    MySQL engine is optimal
[OK]    Database and column collations are correct
[OK]    Database schema correct
[OK]    MySQL and PHP time match
[OK]    Active pollers found
[OK]    Dispatcher Service is enabled
[OK]    Locks are functional
[OK]    No python wrapper pollers found
[OK]    Redis is unavailable
[WARN]  IPv6 is disabled on your server, you will not be able to add IPv6 devices.
[OK]    rrd_dir is writable
[OK]    rrdtool version ok

Can anyone assist with this? I can provide whatever information necessary.

If you still want to be able fetch data for different vDOM, open a ticket for Fortigate to support specifying vDOM by SNMP context like most vendors do.

We’re just trying to fetch data for the root/default vDOM (we don’t have multiple vDOMs running). It was working prior to the most recent firmware update.