Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    PHP error updating SYNC tab pfBlocker

    Scheduled Pinned Locked Moved General pfSense Questions
    10 Posts 2 Posters 499 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • D
      dcuadrados
      last edited by dcuadrados

      Good afternoon,

      When I try to add a host to synchronize pfBlocker with other appliances, upon saving, I encounter this error, which I reproduce below:

      Crash report begins.  Anonymous machine information:
      
      amd64
      14.0-CURRENT
      FreeBSD 14.0-CURRENT amd64 1400094 #1 plus-RELENG_23_09_1-n256200-3de1e293f3a: Wed Dec  6 21:00:32 UTC 2023     root@freebsd:/var/jenkins/workspace/pfSense-Plus-snapshots-23_09_1-main/obj/amd64/Obhu6gXB/var/jenkins/workspace/pfSense-Plus-snapshots-23_09_1
      
      Crash report details:
      
      PHP Errors:
      [02-Apr-2024 18:06:39 Europe/Madrid] PHP Fatal error:  Uncaught TypeError: array_path_enabled(): Argument #1 ($arr) must be of type array, int given, called in /etc/inc/config.lib.inc on line 1264 and defined in /etc/inc/util.inc:3748
      Stack trace:
      #0 /etc/inc/config.lib.inc(1264): array_path_enabled(-1, 'notifications/s...', 'disable')
      #1 /etc/inc/notices.inc(379): config_path_enabled('notifications/s...', 'disable')
      #2 /etc/inc/notices.inc(662): notify_via_smtp('Netgate pfSense...')
      #3 /etc/inc/notices.inc(151): notify_all_remote('Netgate pfSense...')
      #4 /etc/inc/config.lib.inc(239): file_notice('config.xml', 'Netgate pfSense...', 'pfSenseConfigur...', '')
      #5 /etc/inc/config.lib.inc(695): restore_backup('/cf/conf/backup...')
      #6 /usr/local/www/pfblockerng/pfblockerng_sync.php(140): write_config('[pfBlockerNG] s...')
      #7 {main}
        thrown in /etc/inc/util.inc on line 3748
      [02-Apr-2024 18:06:39 Europe/Madrid] PHP Fatal error:  Uncaught TypeError: array_path_enabled(): Argument #1 ($arr) must be of type array, int given, called in /etc/inc/config.lib.inc on line 1264 and defined in /etc/inc/util.inc:3748
      Stack trace:
      #0 /etc/inc/config.lib.inc(1264): array_path_enabled(-1, 'notifications/s...', 'disable')
      #1 /etc/inc/notices.inc(379): config_path_enabled('notifications/s...', 'disable')
      #2 /etc/inc/notices.inc(662): notify_via_smtp('PHP ERROR: Type...')
      #3 /etc/inc/notices.inc(151): notify_all_remote('PHP ERROR: Type...')
      #4 /etc/inc/config.lib.inc(1168): file_notice('phperror', 'PHP ERROR: Type...', 'PHP errors')
      #5 [internal function]: pfSense_clear_globals()
      #6 {main}
        thrown in /etc/inc/util.inc on line 3748
      
      
      
      No FreeBSD crash data found.
      

      Furthermore, in the OpenVPN Client Export package, when adding a password to the certificate, I also encounter this other error,

      Fatal error: Uncaught TypeError: array_path_enabled(): Argument #1 ($arr) must be of type array, int given, called in /etc/inc/config.lib.inc on line 1250 and defined in /etc/inc/util.inc:3662 Stack trace: #0 /etc/inc/config.lib.inc(1250): array_path_enabled(-1, 'notifications/s...', 'disable') #1 /etc/inc/notices.inc(379): config_path_enabled('notifications/s...', 'disable') #2 /etc/inc/notices.inc(662): notify_via_smtp('pfSense is rest...') #3 /etc/inc/notices.inc(151): notify_all_remote('pfSense is rest...') #4 /etc/inc/config.lib.inc(239): file_notice('config.xml', 'pfSense is rest...', 'pfSenseConfigur...', '') #5 /etc/inc/config.lib.inc(695): restore_backup('/cf/conf/backup...') #6 /usr/local/www/vpn_openvpn_export.php(194): write_config('Save openvpn cl...') #7 {main} thrown in /etc/inc/util.inc on line 3662 PHP ERROR: Type: 1, File: /etc/inc/util.inc, Line: 3662, Message: Uncaught TypeError: array_path_enabled(): Argument #1 ($arr) must be of type array, int given, called in /etc/inc/config.lib.inc on line 1250 and defined in /etc/inc/util.inc:3662 Stack trace: #0 /etc/inc/config.lib.inc(1250): array_path_enabled(-1, 'notifications/s...', 'disable') #1 /etc/inc/notices.inc(379): config_path_enabled('notifications/s...', 'disable') #2 /etc/inc/notices.inc(662): notify_via_smtp('pfSense is rest...') #3 /etc/inc/notices.inc(151): notify_all_remote('pfSense is rest...') #4 /etc/inc/config.lib.inc(239): file_notice('config.xml', 'pfSense is rest...', 'pfSenseConfigur...', '') #5 /etc/inc/config.lib.inc(695): restore_backup('/cf/conf/backup...') #6 /usr/local/www/vpn_openvpn_export.php(194): write_config('Save openvpn cl...') #7 {main} thrown Fatal error: Uncaught TypeError: array_path_enabled(): Argument #1 ($arr) must be of type array, int given, called in /etc/inc/config.lib.inc on line 1250 and defined in /etc/inc/util.inc:3662 Stack trace: #0 /etc/inc/config.lib.inc(1250): array_path_enabled(-1, 'notifications/s...', 'disable') #1 /etc/inc/notices.inc(379): config_path_enabled('notifications/s...', 'disable') #2 /etc/inc/notices.inc(662): notify_via_smtp('PHP ERROR: Type...') #3 /etc/inc/notices.inc(151): notify_all_remote('PHP ERROR: Type...') #4 /etc/inc/config.lib.inc(1154): file_notice('phperror', 'PHP ERROR: Type...', 'PHP errors') #5 [internal function]: pfSense_clear_globals() #6 {main} thrown in /etc/inc/util.inc on line 3662
      

      And the crash report:

      Crash report begins.  Anonymous machine information:
      
      amd64
      14.0-CURRENT
      FreeBSD 14.0-CURRENT amd64 1400094 #1 RELENG_2_7_2-n255948-8d2b56da39c: Wed Dec  6 20:45:47 UTC 2023     root@freebsd:/var/jenkins/workspace/pfSense-CE-snapshots-2_7_2-main/obj/amd64/StdASW5b/var/jenkins/workspace/pfSense-CE-snapshots-2_7_2-main/sources/F
      
      Crash report details:
      
      PHP Errors:
      [02-Apr-2024 17:13:14 Europe/Madrid] PHP Fatal error:  Uncaught TypeError: array_path_enabled(): Argument #1 ($arr) must be of type array, int given, called in /etc/inc/config.lib.inc on line 1250 and defined in /etc/inc/util.inc:3662
      Stack trace:
      #0 /etc/inc/config.lib.inc(1250): array_path_enabled(-1, 'notifications/s...', 'disable')
      #1 /etc/inc/notices.inc(379): config_path_enabled('notifications/s...', 'disable')
      #2 /etc/inc/notices.inc(662): notify_via_smtp('pfSense is rest...')
      #3 /etc/inc/notices.inc(151): notify_all_remote('pfSense is rest...')
      #4 /etc/inc/config.lib.inc(239): file_notice('config.xml', 'pfSense is rest...', 'pfSenseConfigur...', '')
      #5 /etc/inc/config.lib.inc(695): restore_backup('/cf/conf/backup...')
      #6 /usr/local/www/vpn_openvpn_export.php(194): write_config('Save openvpn cl...')
      #7 {main}
        thrown in /etc/inc/util.inc on line 3662
      [02-Apr-2024 17:13:14 Europe/Madrid] PHP Fatal error:  Uncaught TypeError: array_path_enabled(): Argument #1 ($arr) must be of type array, int given, called in /etc/inc/config.lib.inc on line 1250 and defined in /etc/inc/util.inc:3662
      Stack trace:
      #0 /etc/inc/config.lib.inc(1250): array_path_enabled(-1, 'notifications/s...', 'disable')
      #1 /etc/inc/notices.inc(379): config_path_enabled('notifications/s...', 'disable')
      #2 /etc/inc/notices.inc(662): notify_via_smtp('PHP ERROR: Type...')
      #3 /etc/inc/notices.inc(151): notify_all_remote('PHP ERROR: Type...')
      #4 /etc/inc/config.lib.inc(1154): file_notice('phperror', 'PHP ERROR: Type...', 'PHP errors')
      #5 [internal function]: pfSense_clear_globals()
      #6 {main}
        thrown in /etc/inc/util.inc on line 3662
      [02-Apr-2024 17:23:53 Europe/Madrid] PHP Fatal error:  Uncaught TypeError: array_path_enabled(): Argument #1 ($arr) must be of type array, int given, called in /etc/inc/config.lib.inc on line 1250 and defined in /etc/inc/util.inc:3662
      Stack trace:
      #0 /etc/inc/config.lib.inc(1250): array_path_enabled(-1, 'notifications/s...', 'disable')
      #1 /etc/inc/notices.inc(379): config_path_enabled('notifications/s...', 'disable')
      #2 /etc/inc/notices.inc(662): notify_via_smtp('pfSense is rest...')
      #3 /etc/inc/notices.inc(151): notify_all_remote('pfSense is rest...')
      #4 /etc/inc/config.lib.inc(239): file_notice('config.xml', 'pfSense is rest...', 'pfSenseConfigur...', '')
      #5 /etc/inc/config.lib.inc(695): restore_backup('/cf/conf/backup...')
      #6 /usr/local/www/pfblockerng/pfblockerng_sync.php(140): write_config('[pfBlockerNG] s...')
      #7 {main}
        thrown in /etc/inc/util.inc on line 3662
      [02-Apr-2024 17:23:53 Europe/Madrid] PHP Fatal error:  Uncaught TypeError: array_path_enabled(): Argument #1 ($arr) must be of type array, int given, called in /etc/inc/config.lib.inc on line 1250 and defined in /etc/inc/util.inc:3662
      Stack trace:
      #0 /etc/inc/config.lib.inc(1250): array_path_enabled(-1, 'notifications/s...', 'disable')
      #1 /etc/inc/notices.inc(379): config_path_enabled('notifications/s...', 'disable')
      #2 /etc/inc/notices.inc(662): notify_via_smtp('PHP ERROR: Type...')
      #3 /etc/inc/notices.inc(151): notify_all_remote('PHP ERROR: Type...')
      #4 /etc/inc/config.lib.inc(1154): file_notice('phperror', 'PHP ERROR: Type...', 'PHP errors')
      #5 [internal function]: pfSense_clear_globals()
      #6 {main}
        thrown in /etc/inc/util.inc on line 3662
      [02-Apr-2024 18:16:10 Europe/Madrid] PHP Fatal error:  Uncaught TypeError: array_path_enabled(): Argument #1 ($arr) must be of type array, int given, called in /etc/inc/config.lib.inc on line 1250 and defined in /etc/inc/util.inc:3662
      Stack trace:
      #0 /etc/inc/config.lib.inc(1250): array_path_enabled(-1, 'notifications/s...', 'disable')
      #1 /etc/inc/notices.inc(379): config_path_enabled('notifications/s...', 'disable')
      #2 /etc/inc/notices.inc(662): notify_via_smtp('pfSense is rest...')
      #3 /etc/inc/notices.inc(151): notify_all_remote('pfSense is rest...')
      #4 /etc/inc/config.lib.inc(239): file_notice('config.xml', 'pfSense is rest...', 'pfSenseConfigur...', '')
      #5 /etc/inc/config.lib.inc(695): restore_backup('/cf/conf/backup...')
      #6 /usr/local/www/vpn_openvpn_export.php(194): write_config('Save openvpn cl...')
      #7 {main}
        thrown in /etc/inc/util.inc on line 3662
      [02-Apr-2024 18:16:10 Europe/Madrid] PHP Fatal error:  Uncaught TypeError: array_path_enabled(): Argument #1 ($arr) must be of type array, int given, called in /etc/inc/config.lib.inc on line 1250 and defined in /etc/inc/util.inc:3662
      Stack trace:
      #0 /etc/inc/config.lib.inc(1250): array_path_enabled(-1, 'notifications/s...', 'disable')
      #1 /etc/inc/notices.inc(379): config_path_enabled('notifications/s...', 'disable')
      #2 /etc/inc/notices.inc(662): notify_via_smtp('PHP ERROR: Type...')
      #3 /etc/inc/notices.inc(151): notify_all_remote('PHP ERROR: Type...')
      #4 /etc/inc/config.lib.inc(1154): file_notice('phperror', 'PHP ERROR: Type...', 'PHP errors')
      #5 [internal function]: pfSense_clear_globals()
      #6 {main}
        thrown in /etc/inc/util.inc on line 3662
      
      
      
      No FreeBSD crash data found.
      			
      

      Could you please help me with this error? Despite my searches, I haven't found anything, and the OpenVPN certificate isn't working because no password seems to function.

      1 Reply Last reply Reply Quote 0
      • stephenw10S
        stephenw10 Netgate Administrator
        last edited by

        Looks like you found this open bug for it: https://redmine.pfsense.org/issues/15157

        1 Reply Last reply Reply Quote 1
        • stephenw10S
          stephenw10 Netgate Administrator
          last edited by

          @dcuadrados said in PHP error updating SYNC tab pfBlocker:

          'pfSense is rest...'

          It looks like in all those cases the error shown is actually generated by the notice and that notice is 'pfSense is restoring the configuration .....'
          Which implies that whatever you're doing there is some how generating an invalid config.

          Try first saviong the notifications page in Sys > Adv > Notifications so that your config file has a notifications section. See if that prevents that error. If so you might see the actual error causing the bad config.

          D 1 Reply Last reply Reply Quote 1
          • D
            dcuadrados @stephenw10
            last edited by

            @stephenw10 Nothing, the same problem :(

            1 Reply Last reply Reply Quote 0
            • D
              dcuadrados
              last edited by

              Good afternoon, I have an update. I have noticed that if I don't use certain characters, such as Ñ and others, in both the Client Export and the SYNC tab of pfBlocker, in both password fields (certificate and firewall to which I want to synchronize the configuration), the error does not occur. Can anyone shed some light on this?

              1 Reply Last reply Reply Quote 0
              • stephenw10S
                stephenw10 Netgate Administrator
                last edited by stephenw10

                Ah, that's a nice catch!

                When you saved the notifications page were you able to check that it actually created a notifications section in the config file?

                Also is that the OpenVPN Client Export I assume?

                D 1 Reply Last reply Reply Quote 0
                • stephenw10S
                  stephenw10 Netgate Administrator
                  last edited by

                  Ok I replicated that by including an invalid character in the password field for a pfBlocker sync host. Digging...

                  1 Reply Last reply Reply Quote 0
                  • stephenw10S
                    stephenw10 Netgate Administrator
                    last edited by

                    OK this is caused by the fact that the config file is not available when the notification is generated creating that php error.

                    However you should see the actual error in the system logs like:

                    Apr 3 14:06:11 	php-fpm 	56218 	/pfblockerng/pfblockerng_sync.php: Configuration Change: admin@172.21.16.8 (Local Database): [pfBlockerNG] save XMLRPC sync settings
                    Apr 3 14:06:11 	php-fpm 	56218 	/pfblockerng/pfblockerng_sync.php: XML error: Undeclared entity error at line 535 in /conf/config.xml
                    Apr 3 14:06:11 	php-fpm 	56218 	/pfblockerng/pfblockerng_sync.php: pfSense is restoring the configuration /cf/conf/backup/config-1712149433.xml
                    Apr 3 14:06:11 	php-fpm 	56218 	/pfblockerng/pfblockerng_sync.php: New alert found: pfSense is restoring the configuration /cf/conf/backup/config-1712149433.xml
                    Apr 3 14:06:11 	php-fpm 	56218 	/pfblockerng/pfblockerng_sync.php: PHP ERROR: Type: 1, File: /etc/inc/util.inc, Line: 3662, Message: Uncaught TypeError: array_path_enabled(): Argument #1 ($arr) must be of type array, int given, called in /etc/inc/config.lib.inc on line 1250 and defined in /etc/inc/util.inc:3662 
                    
                    1 Reply Last reply Reply Quote 1
                    • D
                      dcuadrados @stephenw10
                      last edited by

                      @stephenw10 Now, without using special characters, it works fine. I have a firewall that replicates the configuration of pfBlocker to another, and I use passwords like 0id{FhIKAKln'd*bL.{Ñ, which I generate with a Python script. When I use that password in both the certificate export and the admin of the firewalls where I dump the configuration, the error occurs. However, if I use a password like @.2j7_Rs@-24k, it works fine without any issues and doesn't generate the error.

                      1 Reply Last reply Reply Quote 0
                      • stephenw10S
                        stephenw10 Netgate Administrator
                        last edited by

                        Yup, that will require a different bug ticket. We are just discussing how to handle both issues.

                        1 Reply Last reply Reply Quote 1
                        • First post
                          Last post
                        Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.