<?xml version="1.0" encoding="utf-8"?>
<!--RSS generated by Flaimo.com RSS Builder [2026-09-15 22:35:56]-->
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"><channel><docs>https://mantisbt.org/bugs/</docs><link>https://mantisbt.org/bugs/</link><description><![CDATA[MantisBT - Issues]]></description><title>MantisBT - Issues</title><image><title>MantisBT - Issues</title><url>https://mantisbt.org/bugs/images/mantis_logo.png</url><link>https://mantisbt.org/bugs/</link><description><![CDATA[MantisBT - Issues]]></description></image><language>en</language><category>All Projects</category><ttl>10</ttl><dc:language>en</dc:language><sy:updatePeriod>hourly</sy:updatePeriod><sy:updateFrequency>1</sy:updateFrequency><item><title>0037388: Anzeige</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37388</link><description><![CDATA[ssddfsfssfd]]></description><category>administration</category><pubDate>Mon, 14 Sep 2026 20:46:50 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37388</guid><comments>https://mantisbt.org/bugs/view.php?id=37388#bugnotes</comments></item><item><title>0037387: Caching doesn't get properly invalidated after write operations</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37387</link><description><![CDATA[Often a write operation involves a read and then write. If a read happens after the write, it often reads from stale cache. The write operations need to always flush the cache to avoid such stale reads. This often affects APIs more than web UI.]]></description><category>bugtracker</category><pubDate>Sun, 13 Sep 2026 16:54:36 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37387</guid><comments>https://mantisbt.org/bugs/view.php?id=37387#bugnotes</comments></item><item><title>0037386: Complete rewrite of the installer</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37386</link><description><![CDATA[Our setup program is ancient, and is really showing its age.&lt;br /&gt;
&lt;br /&gt;
- Its internal architecture is terrible, making it a pain to maintain&lt;br /&gt;
- It suffers from many security issues, many of which are not easily fixable - if at all&lt;br /&gt;
- It does not require user authentication&lt;br /&gt;
&lt;br /&gt;
The only solution we can offer at the moment is a recommendation to delete the admin/ directory - but as a quick Google search shows, there are many public instances out there that do not do it, &lt;br /&gt;
&lt;br /&gt;
It would be no small undertaking, but I believe that a complete rewrite is necessary.]]></description><category>installation</category><pubDate>Sat, 12 Sep 2026 12:20:35 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37386</guid><comments>https://mantisbt.org/bugs/view.php?id=37386#bugnotes</comments></item><item><title>0037384: "Change Status To" throws access denied error when issue handler is not developer anymore</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37384</link><description><![CDATA[On View issue page, when trying to change the status of an issue to *assigned* and the issue is already assigned to a user who is no longer authorized to handle issues (e.g. former developer downgraded to reporter), bug_change_status_page.php throws an Access Denied error.&lt;br /&gt;
&lt;br /&gt;
This is not consistent with how such situation is handled for any other status (e.g. it is possible to change it to *resolved* without error) and in other situations (e.g. from bug_update_page.php).&lt;br /&gt;
&lt;br /&gt;
We should only throw the error when the page's *handler_id* parameter is different from the issue's current handler.]]></description><category>bugtracker</category><pubDate>Fri, 11 Sep 2026 08:29:08 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37384</guid><comments>https://mantisbt.org/bugs/view.php?id=37384#bugnotes</comments></item><item><title>0037379: Return value plugin_lang_get_defaulted when no default supplied is incorrect</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37379</link><description><![CDATA[When you call: plugin_lang_get_defaulted( 'test' );&lt;br /&gt;
&lt;br /&gt;
I would expect when plugin_pluginname_test does not exist that i get 'test' back.&lt;br /&gt;
But instead it returns: 'plugin_pluginname_test']]></description><category>plug-ins</category><pubDate>Wed, 09 Sep 2026 19:08:09 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37379</guid><comments>https://mantisbt.org/bugs/view.php?id=37379#bugnotes</comments></item><item><title>0037377: URL doesn't change after issue creation with file attachment</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37377</link><description><![CDATA[The URL in browser doesn't change after we submit new issue with file attachment. It still displays .../bug_report_page.php after we were redirected to new issue. &lt;br /&gt;
Managed to reproduce the issue on Chrome and Firefox. The issue occurred after latest release.&lt;br /&gt;
Most likely it's a JS bug.]]></description><category>javascript</category><pubDate>Tue, 08 Sep 2026 11:26:59 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37377</guid><comments>https://mantisbt.org/bugs/view.php?id=37377#bugnotes</comments></item><item><title>0037376: MantisBT REST API returns 302 redirect to login page instead of API response when using Authorization token</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37376</link><description><![CDATA[The MantisBT REST API is currently not returning the expected API response when an API token is provided through the `Authorization` header.&lt;br /&gt;
&lt;br /&gt;
When calling the REST API with a valid API token, the request is redirected to the Mantis login page instead of returning the requested API data.&lt;br /&gt;
&lt;br /&gt;
### API Request&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
curl -i \&lt;br /&gt;
  -H &quot;Authorization: YOUR_VALID_API_TOKEN&quot; \&lt;br /&gt;
  &quot;&lt;a href=&quot;http://support.svaapta.com/api/rest/index.php/projects&quot;&quot; rel=&quot;noopener,nofollow&quot;&gt;http://support.svaapta.com/api/rest/index.php/projects&quot;&lt;/a&gt;&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### Current Response&lt;br /&gt;
&lt;br /&gt;
```http&lt;br /&gt;
HTTP/1.1 302 Found&lt;br /&gt;
Location: &lt;a href=&quot;http://support.svaapta.com/login_page.php?return=api%2Frest%2Findex.php&quot; rel=&quot;noopener,nofollow&quot;&gt;http://support.svaapta.com/login_page.php?return=api%2Frest%2Findex.php&lt;/a&gt;&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### Expected Response&lt;br /&gt;
&lt;br /&gt;
The API should authenticate the user using the supplied API token and return the requested project data, for example:&lt;br /&gt;
&lt;br /&gt;
```http&lt;br /&gt;
HTTP/1.1 200 OK&lt;br /&gt;
Content-Type: application/json&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
with the project information in the response body.&lt;br /&gt;
&lt;br /&gt;
## Investigation Performed&lt;br /&gt;
&lt;br /&gt;
The following checks have been completed:&lt;br /&gt;
&lt;br /&gt;
1. The `Authorization` header is successfully reaching PHP.&lt;br /&gt;
&lt;br /&gt;
```text&lt;br /&gt;
HTTP_AUTHORIZATION=&lt;token&gt;&lt;br /&gt;
Authorization =&gt; &lt;token&gt;&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
2. The REST `index.php` is being executed successfully.&lt;br /&gt;
&lt;br /&gt;
```text&lt;br /&gt;
REST INDEX EXECUTED&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
3. `AuthMiddleware.php` is successfully loaded.&lt;br /&gt;
&lt;br /&gt;
```text&lt;br /&gt;
AUTH MIDDLEWARE FILE LOADED&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
4. The API token was independently validated using MantisBT's `api_token_get_user()` function.&lt;br /&gt;
&lt;br /&gt;
```text&lt;br /&gt;
Token length: 32&lt;br /&gt;
User ID: 534&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
5. The token successfully maps to the MantisBT user.&lt;br /&gt;
&lt;br /&gt;
```text&lt;br /&gt;
Username: hetal.parmar&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
6. `mci_check_login()` also successfully authenticates the user.&lt;br /&gt;
&lt;br /&gt;
```text&lt;br /&gt;
mci_check_login: 534&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
7. The following REST middleware files were reviewed:&lt;br /&gt;
&lt;br /&gt;
   * `CacheMiddleware.php`&lt;br /&gt;
   * `OfflineMiddleware.php`&lt;br /&gt;
   * `VersionMiddleware.php`&lt;br /&gt;
   * `AuthMiddleware.php`&lt;br /&gt;
&lt;br /&gt;
8. The REST API is enabled in MantisBT configuration:&lt;br /&gt;
&lt;br /&gt;
```php&lt;br /&gt;
$g_webservice_rest_enabled = ON;&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
## Environment&lt;br /&gt;
&lt;br /&gt;
* MantisBT REST API&lt;br /&gt;
* PHP 8.1.x&lt;br /&gt;
* Apache&lt;br /&gt;
* OpenResty / Nginx reverse proxy&lt;br /&gt;
* Docker&lt;br /&gt;
* Slim Framework 3.x&lt;br /&gt;
* API token authentication&lt;br /&gt;
&lt;br /&gt;
## Technical Observation&lt;br /&gt;
&lt;br /&gt;
The API token itself is valid and the `Authorization` header reaches the REST endpoint correctly.&lt;br /&gt;
&lt;br /&gt;
However, the request ultimately receives a `302` redirect to:&lt;br /&gt;
&lt;br /&gt;
```text&lt;br /&gt;
login_page.php?return=api/rest/index.php&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
This redirect is unexpected for an API-token-authenticated REST request.&lt;br /&gt;
&lt;br /&gt;
`AuthMiddleware` normally returns `401` or `403` for authentication/authorization failures rather than a `302` login redirect.&lt;br /&gt;
&lt;br /&gt;
## Impact&lt;br /&gt;
&lt;br /&gt;
REST API clients are currently unable to reliably access MantisBT REST endpoints using API token authentication.&lt;br /&gt;
&lt;br /&gt;
This affects API integrations that depend on endpoints such as:&lt;br /&gt;
&lt;br /&gt;
```text&lt;br /&gt;
/api/rest/index.php/projects&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
## Next Investigation&lt;br /&gt;
&lt;br /&gt;
Trace the Slim middleware execution order and identify which component/code is generating the `302` redirect to `login_page.php`.&lt;br /&gt;
&lt;br /&gt;
The following should be investigated:&lt;br /&gt;
&lt;br /&gt;
* `AuthMiddleware` execution&lt;br /&gt;
* Slim middleware stack&lt;br /&gt;
* `ApiEnabledMiddleware`&lt;br /&gt;
* Mantis authentication/redirect functions&lt;br /&gt;
* Any customizations or plugins that may trigger login redirects&lt;br /&gt;
* Source of `login_page.php?return=api/rest/index.php`&lt;br /&gt;
&lt;br /&gt;
## Expected Resolution&lt;br /&gt;
&lt;br /&gt;
The REST API should accept a valid API token from the `Authorization` header and return the requested API response without redirecting the request to the MantisBT login page.]]></description><category>api rest</category><pubDate>Tue, 08 Sep 2026 10:35:55 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37376</guid><comments>https://mantisbt.org/bugs/view.php?id=37376#bugnotes</comments></item><item><title>0037375: Date format problem when adding a version</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37375</link><description><![CDATA[When adding a new version or modifying an existing one, the &quot;Sort by date&quot; field is in the wrong format: YYYY-MM-DD HH:hh.&lt;br /&gt;
For example, if a new version is added with a date of 08/09/2026, it will be displayed as 0008-09-20 11:13.&lt;br /&gt;
How can I change the format of this field to DD-MM-YYYY HH:hh?&lt;br /&gt;
If I submit the field as is, without modifying it, I get an SQL error, which is expected:&lt;br /&gt;
Database query failed. The error returned by the database was 1: ERROR: value &quot;-61986730140&quot; is out of range for type integer&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
### Original report (French)&lt;br /&gt;
Bonjour,&lt;br /&gt;
Lorsque l'on souhaite ajouter une nouvelle version ou modifier une version existante le champ &quot;Tri par date&quot; est au mauvais format YYYY-MM-DD HH:hh.&lt;br /&gt;
Par exemple si on ajoute une nouvelle version en date du 08/09/2026 il sera affiché 0008-09-20 11:13.&lt;br /&gt;
Comment fait-on pour modifier le format de ce champ afin qu'il prenne le format DD-MM-YYYY HH:hh ?&lt;br /&gt;
Si on valide en l'état sans modifier le champ on tombe sur une erreur SQL ce qui est logique :&lt;br /&gt;
Échec de la requête de base de données. L’erreur renvoyée par la base de données était nº -1 : ERROR: value &quot;-61986730140&quot; is out of range for type integer&lt;br /&gt;
CONTEXT: unnamed portal parameter $4 = '...' pour la requête : UPDATE mantis_project_version_table&lt;br /&gt;
SET version=$1,&lt;br /&gt;
description=$2,&lt;br /&gt;
released=$3,&lt;br /&gt;
date_order=$4,&lt;br /&gt;
obsolete=$5&lt;br /&gt;
WHERE id=$6.]]></description><category>sql</category><pubDate>Tue, 08 Sep 2026 10:35:03 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37375</guid><comments>https://mantisbt.org/bugs/view.php?id=37375#bugnotes</comments></item><item><title>0037374: Project selection list search does not work with special characters</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37374</link><description><![CDATA[When trying to find a project using the search bar, nothing appears when entering certain special characters like `{}()-.,\*.`.&lt;br /&gt;
Replacing each character with a space makes it work.&lt;br /&gt;
&lt;br /&gt;
However, special characters like _ &amp; work correctly.&lt;br /&gt;
&lt;br /&gt;
Can you explain why only certain characters are allowed?`&lt;br /&gt;
&lt;br /&gt;
------ &lt;br /&gt;
### Original report (in French):&lt;br /&gt;
&lt;br /&gt;
Lorsque l'on souhaite se positionner sur un projet via la barre de recherche, il ne remonte rien lorsque l'on saisie certains caractères spéciaux comme {}()-.,\*&lt;br /&gt;
Si on remplace chaque caractère par un espace cela fonctionne.&lt;br /&gt;
Par ailleurs, des caractères spéciaux comme _ &amp; fonctionnent correctement.&lt;br /&gt;
&lt;br /&gt;
Pouvez-vous m'expliquer la raison qui fait que seulement certains caractères sont autorisés ?&lt;br /&gt;
Merci,&lt;br /&gt;
Cordialement.]]></description><category>filters</category><pubDate>Thu, 10 Sep 2026 20:17:59 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37374</guid><comments>https://mantisbt.org/bugs/view.php?id=37374#bugnotes</comments></item><item><title>0037372: HTTP 500 error when activating filter criteria</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37372</link><description><![CDATA[In view_all_bug_page.php, when clicking on any criteria, the filter field is not displayed and an HTTP 500 error occurs (see screenshot)&lt;br /&gt;
&lt;br /&gt;
Running this with xdebug, we get more details: &lt;br /&gt;
Fatal error: Cannot use Mantis\Exceptions\ClientException as ClientException because the name is already in use in.../mantisbt/return_dynamic_filters.php on line 48&lt;br /&gt;
&lt;br /&gt;
Regression introduced by :mantisbt:121dd1b63742ecb45a90ebe7e2200c29bb30804b: (&lt;a href=&quot;https://mantisbt.org/bugs/view.php?id=36812&quot;&gt;0036812&lt;/a&gt;).]]></description><category>filters</category><pubDate>Mon, 07 Sep 2026 07:53:29 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37372</guid><comments>https://mantisbt.org/bugs/view.php?id=37372#bugnotes</comments></item><item><title>0037370: Misleading error message when trying to delete non-existing attachment via SOAP API</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37370</link><description><![CDATA[Unlike the REST API's `DELETE /issues/{id}/files/{file_id}' which includes the Issue Id, the SOAP API's mc_issue_attachment_delete endpoint only expects the attachment's id and does not allow specifying the issue id.&lt;br /&gt;
&lt;br /&gt;
The newly added IssueFileDeleteCommand (&lt;a href=&quot;https://mantisbt.org/bugs/view.php?id=34425&quot;&gt;0034425&lt;/a&gt;) requires both *issue_id* and *file_id*; to accomodate this, mc_issue_attachment_delete calls file_get_field() to retrieve the issue id, but does check the return value to ensure that the file actually exists. The Web UI (bug_file_delete.php) does the same thing.&lt;br /&gt;
&lt;br /&gt;
So when the attachment does not exist, `false` is simply passed on to the Command's issue_id query parameter, and validate() returns a misleading error message: &quot;'issue_id' missing&quot;. While this is technically true, it does not help the user figure out what is wrong with their request.&lt;br /&gt;
&lt;br /&gt;
A more meaningful error message should be returned.&lt;br /&gt;
l]]></description><category>attachments</category><pubDate>Wed, 09 Sep 2026 19:20:59 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37370</guid><comments>https://mantisbt.org/bugs/view.php?id=37370#bugnotes</comments></item><item><title>0037369: helper_parse_id() throws PHP warning when $p_id parameter is `null` (PHP 8.1)</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37369</link><description><![CDATA[The function's PHPDoc states that *$p_id* parameter should be a string, but in fact it can also be `null` (and possibly other types as well).&lt;br /&gt;
&lt;br /&gt;
When this happens, PHP throws&lt;br /&gt;
DEPRECATED: trim(): Passing null to parameter &lt;a href=&quot;https://mantisbt.org/bugs/view.php?id=1&quot;&gt;0000001&lt;/a&gt; ($string) of type string is deprecated.]]></description><category>bugtracker</category><pubDate>Sun, 06 Sep 2026 06:40:57 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37369</guid><comments>https://mantisbt.org/bugs/view.php?id=37369#bugnotes</comments></item><item><title>0037368: Calling access_denied() function from CLI triggers PHP warning</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37368</link><description><![CDATA[When running from CLI, PHP throws &lt;br /&gt;
SYSTEM WARNING: http_response_code(): Cannot set response code - headers already sent.&lt;br /&gt;
&lt;br /&gt;
It makes no sense to output HTML, send a response code and redirect in a CLI context, this code should not be executed.]]></description><category>administration</category><pubDate>Sun, 06 Sep 2026 06:40:35 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37368</guid><comments>https://mantisbt.org/bugs/view.php?id=37368#bugnotes</comments></item><item><title>0037367: REST API: remove token authentication without bearer scheme</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37367</link><description><![CDATA[Following implementation of RFC-compliant authentication in &lt;a href=&quot;https://mantisbt.org/bugs/view.php?id=35286&quot;&gt;0035286&lt;/a&gt; and &lt;a href=&quot;https://mantisbt.org/bugs/view.php?id=37333&quot;&gt;0037333&lt;/a&gt;, the legacy usage of the *Authentication* header without the *bearer* scheme (i.e. `Authentication: &lt;token&gt;`) has been deprecated.&lt;br /&gt;
&lt;br /&gt;
This tracks the future removal of this non-standard authentication method.]]></description><category>api rest</category><pubDate>Fri, 04 Sep 2026 03:05:32 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37367</guid><comments>https://mantisbt.org/bugs/view.php?id=37367#bugnotes</comments></item><item><title>0037366: Deprecated error in PHP 8.5 when importing XML file</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37366</link><description><![CDATA[Importing XML file via `Import/Export issues` plugin gives&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
DEPRECATED: 'Case statements followed by a semicolon (;) are deprecated, use a colon (:) instead' in '.../mantisbt/plugins/XmlImportExport/ImportXml/Issue.php' line 152&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
See the [PHP 8.5 deprecation](&lt;a href=&quot;https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_semicolon_after_case_in_switch_statement&quot; rel=&quot;noopener,nofollow&quot;&gt;https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_semicolon_after_case_in_switch_statement&lt;/a&gt;) for more details.]]></description><category>code cleanup</category><pubDate>Thu, 03 Sep 2026 18:45:14 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37366</guid><comments>https://mantisbt.org/bugs/view.php?id=37366#bugnotes</comments></item><item><title>0037363: Error moving issue via REST API when $g_file_upload_method = DISK and attachment is missing</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37363</link><description><![CDATA[The API fails, even when no attachments are provided in the payload, e.g. with the following request&lt;br /&gt;
&lt;br /&gt;
```http&lt;br /&gt;
POST {{resturl}}/issues/42601/move&lt;br /&gt;
Authorization: {{token}}&lt;br /&gt;
Content-Type: application/json&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &quot;project&quot;: {&lt;br /&gt;
    &quot;id&quot;: 1&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
PHP Warning is thrown: &lt;br /&gt;
chmod(): No such file or directory in .../mantisbt/mantis/core/file_api.php on line 1433&lt;br /&gt;
&lt;br /&gt;
The API returns status 200 with an HTML error page (containing an Xdebug call stack on my dev box)&lt;br /&gt;
&lt;br /&gt;
The error should be caught and reported to the user with a proper HTTP status.]]></description><category>api rest</category><pubDate>Sun, 30 Aug 2026 11:20:58 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37363</guid><comments>https://mantisbt.org/bugs/view.php?id=37363#bugnotes</comments></item><item><title>0037362: Fix cases where existing commands were not used</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37362</link><description><![CDATA[There are some cases where the following commands are not being used:&lt;br /&gt;
&lt;br /&gt;
- UserDeleteCommand&lt;br /&gt;
- ProjectUsersAddCommand&lt;br /&gt;
- ProjectUsersDeleteCommand&lt;br /&gt;
- MonitorAddCommand&lt;br /&gt;
- Version commands&lt;br /&gt;
- Tag commands]]></description><category>code cleanup</category><pubDate>Fri, 28 Aug 2026 12:08:32 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37362</guid><comments>https://mantisbt.org/bugs/view.php?id=37362#bugnotes</comments></item><item><title>0037359: Admin check reports false FAIL when Graphviz path is outside open_basedir</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37359</link><description><![CDATA[## Summary&lt;br /&gt;
&lt;br /&gt;
On a clean MantisBT 2.28.4 installation, the admin installation check reports multiple `FAIL` results when PHP `open_basedir` restricts access to the default Graphviz path `/usr/bin/`.&lt;br /&gt;
&lt;br /&gt;
One of the reported failures appears to be misleading:&lt;br /&gt;
&lt;br /&gt;
`absolute_path configuration option has a trailing directory separator`&lt;br /&gt;
&lt;br /&gt;
The `absolute_path` value is correct and the corresponding condition evaluates to `true`.&lt;br /&gt;
&lt;br /&gt;
## Environment&lt;br /&gt;
&lt;br /&gt;
* MantisBT: 2.28.4&lt;br /&gt;
* PHP: with `open_basedir` enabled&lt;br /&gt;
* Example `open_basedir`:&lt;br /&gt;
&lt;br /&gt;
  ```text&lt;br /&gt;
  /var/www/example.com&lt;br /&gt;
  ```&lt;br /&gt;
* Default Graphviz path:&lt;br /&gt;
&lt;br /&gt;
  ```php&lt;br /&gt;
  $g_graphviz_path = '/usr/bin/';&lt;br /&gt;
  ```&lt;br /&gt;
* Relationship graphs:&lt;br /&gt;
&lt;br /&gt;
  ```php&lt;br /&gt;
  $g_relationship_graph_enable = OFF;&lt;br /&gt;
  ```&lt;br /&gt;
&lt;br /&gt;
## Steps to reproduce&lt;br /&gt;
&lt;br /&gt;
1. Install a clean MantisBT 2.28.4 release.&lt;br /&gt;
2. Configure PHP with an `open_basedir` restriction, for example:&lt;br /&gt;
&lt;br /&gt;
   ```text&lt;br /&gt;
   open_basedir = /var/www/example.com&lt;br /&gt;
   ```&lt;br /&gt;
3. Leave the default Graphviz configuration unchanged:&lt;br /&gt;
&lt;br /&gt;
   ```php&lt;br /&gt;
   $g_graphviz_path = '/usr/bin/';&lt;br /&gt;
   ```&lt;br /&gt;
4. Open the MantisBT Admin → Check Installation page.&lt;br /&gt;
&lt;br /&gt;
## Actual result&lt;br /&gt;
&lt;br /&gt;
The following checks are reported as `FAIL`:&lt;br /&gt;
&lt;br /&gt;
```text&lt;br /&gt;
absolute_path configuration option has a trailing directory separator&lt;br /&gt;
&lt;br /&gt;
graphviz_path configuration option points to a valid directory&lt;br /&gt;
The path '/usr/bin/' is not a valid directory.&lt;br /&gt;
&lt;br /&gt;
graphviz_path configuration option points to an accessible directory&lt;br /&gt;
The path '/usr/bin/' is not accessible.&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
The Graphviz failures are understandable because `/usr/bin/` is outside the configured `open_basedir`.&lt;br /&gt;
&lt;br /&gt;
However, the `absolute_path` check is also marked as `FAIL`, even though its value is correct.&lt;br /&gt;
&lt;br /&gt;
Example runtime value:&lt;br /&gt;
&lt;br /&gt;
```text&lt;br /&gt;
/var/www/example.com/public_html/mantisbt-2.28.4/&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
The exact condition used by the admin check:&lt;br /&gt;
&lt;br /&gt;
```php&lt;br /&gt;
substr( $t_path['config_value'], -1, 1 ) == DIRECTORY_SEPARATOR&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
evaluates to:&lt;br /&gt;
&lt;br /&gt;
```text&lt;br /&gt;
bool(true)&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
## Additional investigation&lt;br /&gt;
&lt;br /&gt;
Calling:&lt;br /&gt;
&lt;br /&gt;
```php&lt;br /&gt;
realpath('/usr/bin/');&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
results in an `open_basedir` restriction warning and returns:&lt;br /&gt;
&lt;br /&gt;
```text&lt;br /&gt;
bool(false)&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
The admin check function contains:&lt;br /&gt;
&lt;br /&gt;
```php&lt;br /&gt;
$t_unhandled = check_unhandled_errors_exist();&lt;br /&gt;
&lt;br /&gt;
if( $p_pass &amp;&amp; !$t_unhandled ) {&lt;br /&gt;
    $t_result = GOOD;&lt;br /&gt;
} elseif( $p_warning &amp;&amp; !$t_unhandled || $t_unhandled == E_DEPRECATED ) {&lt;br /&gt;
    $t_result = WARN;&lt;br /&gt;
} else {&lt;br /&gt;
    $t_result = BAD;&lt;br /&gt;
}&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
This appears to allow a successful check (`$p_pass === true`) to be displayed as `FAIL` when an unrelated unhandled warning is present.&lt;br /&gt;
&lt;br /&gt;
## Expected result&lt;br /&gt;
&lt;br /&gt;
* The `absolute_path` check should report `PASS`.&lt;br /&gt;
* A Graphviz-related warning or failure should not change the result of unrelated configuration checks.&lt;br /&gt;
* Ideally, the Graphviz path should not be validated as a required path when Graphviz functionality is disabled:&lt;br /&gt;
&lt;br /&gt;
  ```php&lt;br /&gt;
  $g_relationship_graph_enable = OFF;&lt;br /&gt;
  ```&lt;br /&gt;
&lt;br /&gt;
## Notes&lt;br /&gt;
&lt;br /&gt;
The issue is reproducible with a clean MantisBT 2.28.4 installation, so it does not appear to be caused by modified or leftover files from an upgrade.&lt;br /&gt;
&lt;br /&gt;
All paths in this report are anonymized examples.]]></description><category>bugtracker</category><pubDate>Fri, 28 Aug 2026 02:43:58 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37359</guid><comments>https://mantisbt.org/bugs/view.php?id=37359#bugnotes</comments></item><item><title>0037355: Message-ID of a submit notification is inherited by subsequent notifications for unrelated issues</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37355</link><description><![CDATA[MantisBT reuses one global PHPMailer instance for all messages sent within a process. Only notifications for newly submitted issues set a Message-ID header (email_bug_info_to_one_user()); every other notification carries In-Reply-To instead. The cleanup between messages clears recipients, attachments, reply-to addresses and custom headers, but not PHPMailer::$MessageID.&lt;br /&gt;
&lt;br /&gt;
The value therefore survives on the shared object, and every following message that does not set its own Message-ID is sent with it. As a result, notifications belonging to different issues go out under an identical Message-ID.&lt;br /&gt;
&lt;br /&gt;
Consequences observed downstream:&lt;br /&gt;
- Mail servers that deduplicate by Message-ID discard messages silently. This is the same failure mode already described in issue 0011123.&lt;br /&gt;
- Ticket systems that resolve In-Reply-To against stored message IDs attach follow-ups to whichever issue happens to own the colliding ID, so notes for issue B end up filed under issue A.&lt;br /&gt;
&lt;br /&gt;
The impact scales with $g_email_send_using_cronjob. With queued delivery the whole queue is flushed in a single process, so one submit notification can propagate its Message-ID to every later message in that run.]]></description><category>email</category><pubDate>Tue, 25 Aug 2026 06:38:42 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37355</guid><comments>https://mantisbt.org/bugs/view.php?id=37355#bugnotes</comments></item><item><title>0037354: Category auto-assign doesn't check if user is enabled and has handler access level</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37354</link><description><![CDATA[If a user that is set to be auto-assigned issue of a category later gets disabled or no longer has the access level to handle issues, they are still assigned newly created issues.]]></description><category>bugtracker</category><pubDate>Fri, 28 Aug 2026 12:09:11 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37354</guid><comments>https://mantisbt.org/bugs/view.php?id=37354#bugnotes</comments></item><item><title>0037353: PHP 8.4: Passing E_USER_ERROR to trigger_error() is deprecated since 8.4</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37353</link><description><![CDATA[error_api.php L106&lt;br /&gt;
&lt;br /&gt;
can be reproduced by writing text in add relationship text box.]]></description><category>code cleanup</category><pubDate>Sat, 22 Aug 2026 11:07:49 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37353</guid><comments>https://mantisbt.org/bugs/view.php?id=37353#bugnotes</comments></item><item><title>0037352: REST API to Move an Issue + EVENT_MOVE_BUG event</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37352</link><description><![CDATA[Add REST API + Command to move an issue with an optional note.&lt;br /&gt;
&lt;br /&gt;
- Implements IssueMoveCommand and leverages it to expose a new REST API.&lt;br /&gt;
- Change Web UI to leverage the new command.&lt;br /&gt;
- Add an trigger `EVENT_MOVE_BUG` event after the move.]]></description><category>api rest</category><pubDate>Sun, 30 Aug 2026 11:10:53 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37352</guid><comments>https://mantisbt.org/bugs/view.php?id=37352#bugnotes</comments></item><item><title>0037351: Update ADOdb to 5.22.12</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37351</link><description><![CDATA[Improve PHP 8.5 / 8.6 compatibility (see &lt;a href=&quot;https://mantisbt.org/bugs/view.php?id=37349&quot;&gt;0037349&lt;/a&gt; / &lt;a href=&quot;https://github.com/ADOdb/ADOdb/issues/1250&quot; rel=&quot;noopener,nofollow&quot;&gt;https://github.com/ADOdb/ADOdb/issues/1250&lt;/a&gt;).]]></description><category>db schema</category><pubDate>Fri, 21 Aug 2026 06:11:53 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37351</guid><comments>https://mantisbt.org/bugs/view.php?id=37351#bugnotes</comments></item><item><title>0037349: Function is_integer() is deprecated since 8.6, use is_int() instead</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37349</link><description><![CDATA[Running test suite on PHP 8.6 throws numerous deprecation warnings&lt;br /&gt;
&lt;br /&gt;
Reference: &lt;a href=&quot;https://wiki.php.net/rfc/deprecations_php_8_6#deprecate_is_integer&quot; rel=&quot;noopener,nofollow&quot;&gt;https://wiki.php.net/rfc/deprecations_php_8_6#deprecate_is_integer&lt;/a&gt;]]></description><category>code cleanup</category><pubDate>Fri, 21 Aug 2026 06:11:48 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37349</guid><comments>https://mantisbt.org/bugs/view.php?id=37349#bugnotes</comments></item><item><title>0037348: Impossible to unset product version</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37348</link><description><![CDATA[When an Issue has *Product Version* defined, it is not possible to remove it, error message is :&lt;br /&gt;
&lt;br /&gt;
APPLICATION ERROR 1601&lt;br /&gt;
Version &quot;0&quot; not found.]]></description><category>bugtracker</category><pubDate>Tue, 18 Aug 2026 11:05:45 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37348</guid><comments>https://mantisbt.org/bugs/view.php?id=37348#bugnotes</comments></item></channel></rss>
