Skip to content

Plugin - Fields: Cannot update to use with V11 #1035

@jtfeatures

Description

@jtfeatures

Code of Conduct

  • I agree to follow this project's Code of Conduct

Is there an existing issue for this?

  • I have searched the existing issues

GLPI Version

11.0.1

Plugin version

1.22.0 - 1.22.1

Bug description

I have been trying to get the plugin back up and running but it keeps staying stuck as needing an update and not available or able to disable it. Version 1.22.0 is installed (or was when I moved to GLPI 11) but I uploaded version 1.22.1 so it should be updated.

Relevant log output

[2025-10-10 13:16:02] glpi.WARNING:   *** User Warning: plugin_version_fields method must be defined! at Plugin.php line 1858
  Backtrace :
  ./src/Plugin.php:1858                              
  ./src/Plugin.php:2212                              Plugin::getInfo()
  ./src/Glpi/Marketplace/View.php:618                Plugin->checkVersions()
  ./src/Glpi/Marketplace/View.php:541                Glpi\Marketplace\View::getButtons()
  ./src/Glpi/Marketplace/View.php:371                Glpi\Marketplace\View::getPluginCard()
  ./src/Glpi/Marketplace/View.php:309                Glpi\Marketplace\View::displayList()
  ./ajax/marketplace.php:80                          Glpi\Marketplace\View::discover()
  ...Glpi/Controller/LegacyFileLoadController.php:64 require()
  ./vendor/symfony/http-kernel/HttpKernel.php:181    Glpi\Controller\LegacyFileLoadController->__invoke()
  ./vendor/symfony/http-kernel/HttpKernel.php:76     Symfony\Component\HttpKernel\HttpKernel->handleRaw()
  ./vendor/symfony/http-kernel/Kernel.php:197        Symfony\Component\HttpKernel\HttpKernel->handle()
  ./public/index.php:70                              Symfony\Component\HttpKernel\Kernel->handle()


[2025-10-10 13:16:53] glpi.CRITICAL:   *** Uncaught PHP Exception RuntimeException: "MySQL query error: Incorrect table name 'glpi_plugin_fields_glpicustomassetcamerassensorassetdevicedetails' (1103) in SQL query "RENAME TABLE `glpi_plugin_fields_plugingenericobjectcamerassensordevicedetails` TO `glpi_plugin_fields_glpicustomassetcamerassensorassetdevicedetails`"." at DBmysql.php line 371
  Backtrace :
  ./src/DBmysql.php:371                              
  ./src/Migration.php:689                            DBmysql->doQuery()
  ./plugins/fields/inc/container.class.php:204       Migration->renameTable()
  ./plugins/fields/hook.php:79                       PluginFieldsContainer::installBaseData()
  ./src/Plugin.php:1160                              plugin_fields_install()
  :                                                  Plugin->install()
  ./src/Glpi/Marketplace/Controller.php:655          call_user_func()
  ./src/Glpi/Marketplace/Controller.php:545          Glpi\Marketplace\Controller->setPluginState()
  ./ajax/marketplace.php:63                          Glpi\Marketplace\Controller->installPlugin()
  ...Glpi/Controller/LegacyFileLoadController.php:64 require()
  ./vendor/symfony/http-kernel/HttpKernel.php:181    Glpi\Controller\LegacyFileLoadController->__invoke()
  ./vendor/symfony/http-kernel/HttpKernel.php:76     Symfony\Component\HttpKernel\HttpKernel->handleRaw()
  ./vendor/symfony/http-kernel/Kernel.php:197        Symfony\Component\HttpKernel\HttpKernel->handle()
  ./public/index.php:70                              Symfony\Component\HttpKernel\Kernel->handle()

Page URL

No response

Steps To reproduce

  1. Manually upload the plugin to the GLPI instance because the Marketplace won't update it.
  2. Click the "Update" icon on the Marketplace page
  3. Nothing changes on the page so I look at the logs and see the failure.

Your GLPI setup information

GLPI information
GLPI: 11.0.1 ( => /var/www/glpi1101)
Installation mode: TARBALL
Current language: en_US
Source Integrity: OK
Server
Operating system: Linux hosting 6.8.12-14-pve #1 SMP PREEMPT_DYNAMIC PMX 6.8.12-14 (2025-08-26T22:25Z) x86_64

PHP: 8.2.29 apache2handler

PHP extensions: Core, date, libxml, openssl, pcre, zlib, filter, hash, json, random, Reflection, SPL, session, standard, sodium,
apache2handler, mysqlnd, PDO, xml, bcmath, bz2, calendar, ctype, curl, dom, mbstring, FFI, fileinfo, ftp, gd, gettext, gmp,
iconv, imagick, intl, ldap, exif, mysqli, pdo_mysql, pdo_sqlite, Phar, posix, readline, shmop, SimpleXML, soap, sockets,
sqlite3, sysvmsg, sysvsem, sysvshm, tokenizer, xmlreader, xmlwriter, xsl, zip, zmq, Zend OPcache

Setup: disable_functions="" max_execution_time="300" max_input_vars="8000" memory_limit="4096M" post_max_size="200M"
session.cookie_secure="0" session.cookie_httponly="1" session.cookie_samesite="" session.save_handler="files"
upload_max_filesize="2000M"

Web server: Apache/2.4.65 (Debian) (Apache/2.4.65 (Debian) Server at support.bsbes.org Port 2018)

User agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
Edg/141.0.0.0

Database:

Server Software: Debian 12

Server Version: 10.11.14-MariaDB-0+deb12u2

Server SQL Mode: STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

Parameters: [email protected]/bsbesit_glpi_db_int

Host info: 192.168.211.253 via TCP/IP

Requirements:
PHP version (8.2.29) is supported.
OS and PHP are relying on 64 bits integers.
Sessions configuration is OK.
Allocated memory is sufficient.
Following extensions are installed: dom, fileinfo, filter, libxml, simplexml, tokenizer, xmlreader,
xmlwriter.
mysqli extension is installed
curl extension is installed
gd extension is installed
intl extension is installed
mbstring extension is installed
zlib extension is installed
bcmath extension is installed
The constant
SODIUM_CRYPTO_AEAD_XCHACHA20POLY1305_IETF_NPUBBYTES is present.
openssl extension is installed
Database engine version (10.11.14) is
supported.
The log file has been created successfully.
Write access to /var/www/glpi1101/files/_cache has been validated.
Write access to /var/www/glpi1101/files/_cron has been validated.
Write access to /var/www/glpi1101/files has been validated.
Write access to /var/www/glpi1101/files/_graphs has been validated.
Write access to /var/www/glpi1101/files/_lock has been validated.
Write access to /var/www/glpi1101/files/_pictures has been validated.
Write access to /var/www/glpi1101/files/_plugins has been validated.
Write access to /var/www/glpi1101/files/_rss has been validated.
Write access to /var/www/glpi1101/files/_sessions has been validated.
Write access to /var/www/glpi1101/files/_tmp has been validated.
Write access to /var/www/glpi1101/files/_uploads has been validated.

Sessions configuration is secured.
exif extension is installed
ldap extension is installed
Following extensions are installed: bz2,
Phar, zip.
Zend OPcache extension is installed
Following extensions are installed:
ctype, iconv, sodium.
Write access to
/var/www/glpi1101/marketplace has been validated.
Timezones seems loaded in database.

GLPI constants
GLPI_ROOT: "/var/www/glpi1101"
GLPI_VERSION: "11.0.1"
GLPI_SCHEMA_VERSION: "11.0.1@ea2dbba0e1edbf5128d73bdb23c2c9b9f68468ba"
GLPI_FILES_VERSION: "11.0.1-3a9929cf"
GLPI_MIN_PHP: "8.2"
GLPI_MAX_PHP: "8.5"
GLPI_YEAR: "2025"
GLPI_I18N_DIR: "/var/www/glpi1101/locales"
GLPI_ENVIRONMENT_TYPE: "production"
GLPI_CONFIG_DIR: "/var/www/glpi1101/config"
GLPI_VAR_DIR: "/var/www/glpi1101/files"
GLPI_MARKETPLACE_DIR: "/var/www/glpi1101/marketplace"
GLPI_ALLOW_IFRAME_IN_RICH_TEXT: false
GLPI_SERVERSIDE_URL_ALLOWLIST: ["^\n (http|https|feed)://
# protocol\n (\n (?:\n
(?:xn--[a-z0-9-]++\.)*+xn--[a-z0-9-]++ # a domain name using punycode\n
|\n (?:[\pL\pN\pS\pM\-\]++\.)+[\pL\pN\pM]++ # a multi-level domain
name\n |\n [a-z0-9\-\
]++
# a single-level domain name\n )\.?\n |
# or\n \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}
# an IP address\n | #
or\n \[\n
(?:(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){6})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:::(?:(?:(?:[0-9a-f]{1,4})):){5})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:[0-9a-f]{1,4})))?::(?:(?:(?:[0-9a-f]{1,4})):){4})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,1}(?:(?:[0-9a-f]{1,4})))?::(?:(?:(?:[0-9a-f]{1,4})):){3})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,2}(?:(?:[0-9a-f]{1,4})))?::(?:(?:(?:[0-9a-f]{1,4})):){2})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,3}(?:(?:[0-9a-f]{1,4})))?::(?:(?:[0-9a-f]{1,4})):)(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,4}(?:(?:[0-9a-f]{1,4})))?::)(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,5}(?:(?:[0-9a-f]{1,4})))?::)(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,6}(?:(?:[0-9a-f]{1,4})))?::))))\n
\] # an IPv6 address\n
)\n (?:/ (?:[\pL\pN\pS\pM\-._\
!$&'()+,;=:@]|%[0-9A-Fa-f]{2}) )* # a path\n
(?:\? (?:[\pL\pN\-._\~!$&'\\+,;=:@/?]|%[0-9A-Fa-f]{2}) )? # a query (optional)\n
$~ixuD"]
GLPI_DISALLOWED_UPLOADS_PATTERN: "/\.(php\d*|phar)$/i"
GLPI_TELEMETRY_URI: "https://telemetry.glpi-project.org"
GLPI_INSTALL_MODE: "TARBALL"
GLPI_NETWORK_MAIL: "[email protected]"
GLPI_NETWORK_SERVICES: "https://services.glpi-network.com"
GLPI_MARKETPLACE_ENABLE: 3
GLPI_MARKETPLACE_PRERELEASES: false
GLPI_MARKETPLACE_ALLOW_OVERRIDE: true
GLPI_MARKETPLACE_MANUAL_DOWNLOADS: true
GLPI_USER_AGENT_EXTRA_COMMENTS: ""
GLPI_DOCUMENTATION_ROOT_URL: "https://links.glpi-project.org"
GLPI_DISABLE_ONLY_FULL_GROUP_BY_SQL_MODE: "1"
GLPI_LOG_LVL: "warning"
GLPI_SKIP_UPDATES: false
GLPI_STRICT_ENV: false
GLPI_AJAX_DASHBOARD: "1"
GLPI_CALDAV_IMPORT_STATE: 0
GLPI_CENTRAL_WARNINGS: "1"
GLPI_SYSTEM_CRON: false
GLPI_TEXT_MAXSIZE: "4000"
GLPI_WEBHOOK_ALLOW_RESPONSE_SAVING: "0"
GLPI_WEBHOOK_CRA_MANDATORY: false
GLPI_ALTCHA_MODE: "interactive"
GLPI_ALTCHA_MAX_NUMBER: 50000
GLPI_ALTCHA_EXPIRATION_INTERVAL: "PT20M"
GLPI_DOC_DIR: "/var/www/glpi1101/files"
GLPI_CACHE_DIR: "/var/www/glpi1101/files/_cache"
GLPI_CRON_DIR: "/var/www/glpi1101/files/_cron"
GLPI_GRAPH_DIR: "/var/www/glpi1101/files/_graphs"
GLPI_LOCAL_I18N_DIR: "/var/www/glpi1101/files/_locales"
GLPI_LOCK_DIR: "/var/www/glpi1101/files/_lock"
GLPI_LOG_DIR: "/var/www/glpi1101/files/_log"
GLPI_PICTURE_DIR: "/var/www/glpi1101/files/_pictures"
GLPI_PLUGIN_DOC_DIR: "/var/www/glpi1101/files/_plugins"
GLPI_RSS_DIR: "/var/www/glpi1101/files/_rss"
GLPI_SESSION_DIR: "/var/www/glpi1101/files/_sessions"
GLPI_TMP_DIR: "/var/www/glpi1101/files/_tmp"
GLPI_UPLOAD_DIR: "/var/www/glpi1101/files/_uploads"
GLPI_INVENTORY_DIR: "/var/www/glpi1101/files/_inventories"
GLPI_THEMES_DIR: "/var/www/glpi1101/files/_themes"
GLPI_PLUGINS_DIRECTORIES: ["/var/www/glpi1101/marketplace","/var/www/glpi1101/plugins"]
GLPI_NETWORK_REGISTRATION_API_URL: "https://services.glpi-network.com/api/registration/"
GLPI_MARKETPLACE_PLUGINS_API_URI: "https://services.glpi-network.com/api/marketplace/"
SQL Replicas
Not active

Anything else?

glpi_plugin_fields_plugingenericobjectcamerassensordevicedetails (64 characters) - Old Table Name
glpi_plugin_fields_glpicustomassetcamerassensorassetdevicedetails (65 characters) - New Table Name

I tried to change it myself in the DB but the SQL gives the same warning. How can it be too long when GLPI made it this way to begin with?

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions