<?xml version="1.0" encoding="utf-8"?>
<!--RSS generated by Flaimo.com RSS Builder [2026-10-28 00:31:57]-->
<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>0037460: Adding a note to a read-only issue is denied when "All Projects" is selected, although allowed by the project's threshold</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37460</link><description><![CDATA[bug_is_readonly() reads $g_bug_readonly_status_threshold for the issue's project, but $g_update_readonly_bug_threshold for the user's currently selected project.&lt;br /&gt;
&lt;br /&gt;
When update_readonly_bug_threshold is overridden at project level, the result therefore depends on the project selector. view.php overrides the current project, so the &quot;Add Note&quot; form is shown, but when the note is submitted, bugnote_add.php -&gt; IssueNoteAddCommand::validate() -&gt; bug_is_readonly() evaluates the threshold for &quot;All Projects&quot; and rejects the note:&lt;br /&gt;
&lt;br /&gt;
APPLICATION ERROR #1103: The action cannot be performed because issue &quot;X&quot; is read-only. (HTTP 403)&lt;br /&gt;
&lt;br /&gt;
If the user selects the issue's project first, the note is added.]]></description><category>authentication</category><pubDate>Mon, 26 Oct 2026 05:12:44 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37460</guid><comments>https://mantisbt.org/bugs/view.php?id=37460#bugnotes</comments></item><item><title>0037459: Resolution field missing when closing a reopened issue</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37459</link><description><![CDATA[hen an issue that has been reopened is closed directly from the &quot;Change Status To: closed&quot; page, the Resolution field is not shown, so the resolution cannot be set and stays at &quot;reopened&quot;.&lt;br /&gt;
&lt;br /&gt;
bug_change_status_page.php considers the current resolution as &quot;fixed&quot; if it is &gt;= $g_bug_resolution_fixed_threshold (FIXED). With the default enum, REOPENED (30) is greater than FIXED (20), so a reopened issue is treated as already fixed and the Resolution field is hidden when closing it. When resolving a reopened issue, the field is shown but &quot;reopened&quot; is preselected instead of &quot;fixed&quot;.&lt;br /&gt;
&lt;br /&gt;
bug_update.php already treats $g_bug_reopen_resolution as a special case in its resolution checks (see &lt;a href=&quot;https://mantisbt.org/bugs/view.php?id=22468&quot;&gt;0022468&lt;/a&gt; for the original change on the status page).]]></description><category>ui</category><pubDate>Mon, 26 Oct 2026 05:15:09 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37459</guid><comments>https://mantisbt.org/bugs/view.php?id=37459#bugnotes</comments></item><item><title>0037458: Database schema differences for old MantisBT versions updated to recent versions</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37458</link><description><![CDATA[I happen to have a very old MantisBT MySQL/MariaDB database that has been updated over time to 2.28.4.&lt;br /&gt;
I also made a clean MantisBT 2.28.4 install.&lt;br /&gt;
I compared the two database structures.&lt;br /&gt;
Most differences are the text and longtext column types. But there is also a primary index and default value difference.]]></description><category>db schema</category><pubDate>Mon, 26 Oct 2026 06:22:23 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37458</guid><comments>https://mantisbt.org/bugs/view.php?id=37458#bugnotes</comments></item><item><title>0037457: mci_file_add does not apply proper value for bugnote_id</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37457</link><description><![CDATA[In the /admin/schema.php it says the following.&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
# 0 - file was added pre-2.23.0 and not explicitly linked to an issue or a note.&lt;br /&gt;
# null - file was added by 2.23.0 release or newer and associated with the issue.&lt;br /&gt;
# otherwise - file was added or linked by 2.23.0 release or newer and associated with an issue note.&lt;br /&gt;
$g_upgrade[210] = array( 'AddColumnSQL', array( db_get_table( 'bug_file' ), &quot;&lt;br /&gt;
	bugnote_id			I		UNSIGNED DEFAULT '0' &quot; ) );&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
mci_file_add does not respect this and always sets the bugnote_id to 0&lt;br /&gt;
I think this has to do with the default value being 0 and NULL not being specifically provided when adding the attachment.]]></description><category>api soap</category><pubDate>Mon, 26 Oct 2026 07:43:38 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37457</guid><comments>https://mantisbt.org/bugs/view.php?id=37457#bugnotes</comments></item><item><title>0037451: string_get_bug_view_link() passes project_id as the $p_user argument to get_enum_element()</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37451</link><description><![CDATA[In `core/string_api.php`, `string_get_bug_view_link()` builds the status label for the link's `title` attribute with this call:&lt;br /&gt;
&lt;br /&gt;
```php&lt;br /&gt;
$t_project_id = bug_get_field( $p_bug_id, 'project_id' );&lt;br /&gt;
$t_status = string_attribute( get_enum_element( 'status', bug_get_field( $p_bug_id, 'status' ), $t_project_id ) );&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
However, the signature of `get_enum_element()` (in `core/helper_api.php`) is:&lt;br /&gt;
&lt;br /&gt;
```php&lt;br /&gt;
function get_enum_element( $p_enum_name, $p_val, $p_user = null, $p_project = null )&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
So `$t_project_id` is being passed as the **third** argument (`$p_user`), not the **fourth** (`$p_project`). Internally `get_enum_element()` forwards both to `config_get( 'status_enum_string', null, $p_user, $p_project )`, meaning the bug's project id is used as a user id when resolving the `status_enum_string` configuration.&lt;br /&gt;
&lt;br /&gt;
Effect: the status label shown in the bug link tooltip does not honor a per-project override of `status_enum_string`, and the project id is mistakenly treated as a user id. In most installations the impact is negligible, because `status_enum_string` is rarely overridden per user and `config_get` falls back to the global value — which is likely why it went unnoticed. But it is still incorrect: a per-project `status_enum_string` override is ignored, and under specific user-level overrides the resolved label could be wrong.&lt;br /&gt;
&lt;br /&gt;
Expected: the project id should be passed as the fourth argument:&lt;br /&gt;
&lt;br /&gt;
```php&lt;br /&gt;
$t_status = string_attribute( get_enum_element( 'status', bug_get_field( $p_bug_id, 'status' ), null, $t_project_id ) );&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
- Confirmed present in the installed version and still present in 2.28.1 and 2.28.4 (latest checked), so this is long-standing, not a recent regression.&lt;br /&gt;
- The resolved-class computation a few lines below already resolves the project correctly, via `config_get( 'bug_resolved_status_threshold', null, null, $t_project_id )` (project as the 4th argument) — which highlights the inconsistency in the `get_enum_element()` call.]]></description><category>bugtracker</category><pubDate>Sun, 18 Oct 2026 22:04:31 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37451</guid><comments>https://mantisbt.org/bugs/view.php?id=37451#bugnotes</comments></item><item><title>0037450: Session lock during shutdown email delivery delays issue pages after updates</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37450</link><description><![CDATA[After adding a note or updating an issue, the redirected issue page&lt;br /&gt;
intermittently takes 5–15 seconds to load.&lt;br /&gt;
&lt;br /&gt;
email_shutdown_function() calls fastcgi_finish_request() and then&lt;br /&gt;
email_send_all() while retaining the PHP session lock. The browser&lt;br /&gt;
receives the response and follows the redirect, but the next request&lt;br /&gt;
using the same session blocks in session_start() until email&lt;br /&gt;
processing finishes.&lt;br /&gt;
&lt;br /&gt;
PHP-FPM slowlog captured nine affected requests, all waiting in&lt;br /&gt;
session_start() at core/session_api.php:149.&lt;br /&gt;
&lt;br /&gt;
Expected behavior: save and release the active session before&lt;br /&gt;
finishing the response and processing notification emails.]]></description><category>email</category><pubDate>Fri, 16 Oct 2026 06:03:52 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37450</guid><comments>https://mantisbt.org/bugs/view.php?id=37450#bugnotes</comments></item><item><title>0037449: Accessibility: Contrast ratio of text in bug_update_page.php fails WCAG</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37449</link><description><![CDATA[When editing a bug, the color of 'select option', 'input' and 'textarea' is #858585 on background #FFFFFF. The ratio being 3.96:1.&lt;br /&gt;
&lt;br /&gt;
Thus, #858585 fails Web Content Accessibility Guideline (WCAG) success-criterion 1.4.3 and 1.4.6 for text and 1.4.6 for large-scale text.&lt;br /&gt;
&lt;br /&gt;
**Solution**: Enhance text-color to #393939]]></description><category>ui</category><pubDate>Wed, 14 Oct 2026 11:29:59 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37449</guid><comments>https://mantisbt.org/bugs/view.php?id=37449#bugnotes</comments></item><item><title>0037447: summary_page.php without submenu</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37447</link><description><![CDATA[if you go to the summary_page there is no submenu, that leads to the graphic pages, anymore.&lt;br /&gt;
you can call for example the mantis/plugin.php?page=MantisGraph/resolution_graph.php direkt and that page shows the submenu. But without the submenu on summary_page, you cannot navigate the the graphic pages.]]></description><category>reports</category><pubDate>Tue, 27 Oct 2026 11:40:09 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37447</guid><comments>https://mantisbt.org/bugs/view.php?id=37447#bugnotes</comments></item><item><title>0037444: Anomalous skip from day 24 to 26 in Date selectors</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37444</link><description><![CDATA[In all platform forms (ticket creation, editing, or filters), the dropdown lists generated for &quot;Date&quot; type Custom Fields fail to display the 25th day of the month. The list visually counts ... 22, 23, 24, 26, 27 ..., completely blocking users from recording that exact day regardless of the month or year selected.]]></description><category>bugtracker</category><pubDate>Tue, 27 Oct 2026 07:13:00 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37444</guid><comments>https://mantisbt.org/bugs/view.php?id=37444#bugnotes</comments></item><item><title>0037443: Issue created via REST API with too long value for custom field fails in the middle of operation with 500 error</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37443</link><description><![CDATA[When you create an issue via REST API with a custom field (String type) and send value which is too long, more than 255 characters, it creates an issue but fails during 'INSERT INTO mantis_custom_field_string_table [...]'. Exception is thrown from database that data is too long for column 'value'.&lt;br /&gt;
Issue exists but without all provided values for custom fields and 500 response code is returned.&lt;br /&gt;
&lt;br /&gt;
We were able to find a root cause quite quickly because we found deprecation message in logs:&lt;br /&gt;
Unhandled deprecation warning in /var/www/mantis/core/classes/DbQuery.class.php line 298: 'Passing E_USER_ERROR to trigger_error() is deprecated since 8.4, throw an exception or call exit with a string message instead'.&lt;br /&gt;
&lt;br /&gt;
It fails in:&lt;br /&gt;
&lt;br /&gt;
`if( !$this-&gt;db_result ) {&lt;br /&gt;
			db_error( $this-&gt;db_query_string );&lt;br /&gt;
			trigger_error( ERROR_DB_QUERY_FAILED, ERROR );&lt;br /&gt;
			$this-&gt;db_result = false;&lt;br /&gt;
}`]]></description><category>custom fields</category><pubDate>Mon, 12 Oct 2026 02:14:01 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37443</guid><comments>https://mantisbt.org/bugs/view.php?id=37443#bugnotes</comments></item><item><title>0037436: test</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37436</link><description><![CDATA[rozbite]]></description><category>General</category><pubDate>Fri, 02 Oct 2026 06:23:51 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37436</guid><comments>https://mantisbt.org/bugs/view.php?id=37436#bugnotes</comments></item><item><title>0037435: MaxBot Plugin</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37435</link><description><![CDATA[The plugin connects MantisBT with a bot of the MAX messenger (&lt;a href=&quot;https://max.ru&quot; rel=&quot;noopener,nofollow&quot;&gt;https://max.ru&lt;/a&gt;), the MAX counterpart&lt;br /&gt;
of the TelegramBot plugin already hosted in mantisbt-plugins. It reports issues from the chat with&lt;br /&gt;
a guided dialog covering every field of the report form, custom fields included, adds notes by&lt;br /&gt;
replying to notifications, attaches files, changes the issue status, broadcasts messages to the&lt;br /&gt;
members of chosen projects and sends notifications to MAX instead of, or along with, email. With&lt;br /&gt;
the Calendar plugin installed it also creates calendar events from the chat and notifies about them.&lt;br /&gt;
&lt;br /&gt;
Requires MantisBT 2.26 or higher. MaxBot and TelegramBot can be installed side by side.&lt;br /&gt;
&lt;br /&gt;
I have transferred the repository to the mantisbt-plugins organization:&lt;br /&gt;
&lt;a href=&quot;https://github.com/mantisbt-plugins/MaxBot&quot; rel=&quot;noopener,nofollow&quot;&gt;https://github.com/mantisbt-plugins/MaxBot&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Please add it to the plugins list on the wiki. Push access: brlumen.&lt;br /&gt;
&lt;br /&gt;
Thanks!]]></description><category>plug-ins</category><pubDate>Thu, 01 Oct 2026 11:02:32 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37435</guid><comments>https://mantisbt.org/bugs/view.php?id=37435#bugnotes</comments></item><item><title>0037434: Support S3 as backend for attachments</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37434</link><description><![CDATA[Currently only Database and File System are supported, but with the ability to deploy on clouds, S3 becomes a great addition to it.]]></description><category>attachments</category><pubDate>Wed, 30 Sep 2026 05:02:48 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37434</guid><comments>https://mantisbt.org/bugs/view.php?id=37434#bugnotes</comments></item><item><title>0037433: wrong time locality</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37433</link><description><![CDATA[test to see if the time locality is not consistent with the local machine]]></description><category>time tracking</category><pubDate>Tue, 29 Sep 2026 11:26:57 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37433</guid><comments>https://mantisbt.org/bugs/view.php?id=37433#bugnotes</comments></item><item><title>0037431: attached Image not getting issue ID</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37431</link><description><![CDATA[Image not getting issue ID &lt;br /&gt;
&lt;a href=&quot;http://support.svaapta.com/file_download.php?file_id=29208&amp;type=bug&quot; rel=&quot;noopener,nofollow&quot;&gt;http://support.svaapta.com/file_download.php?file_id=29208&amp;type=bug&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
getting blank]]></description><category>attachments</category><pubDate>Tue, 27 Oct 2026 07:12:06 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37431</guid><comments>https://mantisbt.org/bugs/view.php?id=37431#bugnotes</comments></item><item><title>0037427: Allow attachments stored on disk to be spread over subdirectories</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37427</link><description><![CDATA[With `$g_file_upload_method = DISK`, every attachment belonging to a project is&lt;br /&gt;
written directly into that project's upload directory. There is no way to&lt;br /&gt;
subdivide it.&lt;br /&gt;
&lt;br /&gt;
On installations that accumulate large numbers of attachments this becomes a&lt;br /&gt;
real operational problem. In our case a single directory holds roughly 133,000&lt;br /&gt;
files. The consequences:&lt;br /&gt;
&lt;br /&gt;
- Directory traversal is expensive, and every tool that walks the directory&lt;br /&gt;
  pays for it.&lt;br /&gt;
- Incremental backups are the worst case. rsync has to stat the entire&lt;br /&gt;
  directory to discover the handful of files that changed since the last run,&lt;br /&gt;
  which took hours. After splitting the files across 256 subdirectories the&lt;br /&gt;
  same backup completes in minutes, because unchanged subtrees are skipped&lt;br /&gt;
  cheaply.&lt;br /&gt;
&lt;br /&gt;
Other applications that store large numbers of hashed files solve this by&lt;br /&gt;
using the leading characters of the file name as a directory prefix - git's&lt;br /&gt;
object store being the obvious example.]]></description><category>attachments</category><pubDate>Mon, 28 Sep 2026 08:15:11 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37427</guid><comments>https://mantisbt.org/bugs/view.php?id=37427#bugnotes</comments></item><item><title>0037426: Moving an issue between projects fails or silently skips its attachments when the source project's file path has changed</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37426</link><description><![CDATA[`file_move_bug_attachments()` derives each attachment's source location from&lt;br /&gt;
the source project's *current* `file_path`, ignoring the `folder` column that&lt;br /&gt;
records where the file was actually written. The function also *writes*&lt;br /&gt;
`folder` at the end of each move, so it disagrees with itself: it maintains a&lt;br /&gt;
column it never reads.&lt;br /&gt;
&lt;br /&gt;
`project_update()` lets an administrator repoint a project's `file_path`&lt;br /&gt;
without moving the attachments already on disk. From that point on, moving an&lt;br /&gt;
issue out of that project looks for its attachments in a directory that never&lt;br /&gt;
held them, with two distinct outcomes:&lt;br /&gt;
&lt;br /&gt;
1. Normally, `rename()` and then `copy()` both fail, and the move aborts with&lt;br /&gt;
   `ERROR_FILE_MOVE_FAILED` (&quot;Unable to move file to ...&quot;). The issue cannot be&lt;br /&gt;
   moved at all.&lt;br /&gt;
&lt;br /&gt;
2. If the two projects' configured paths happen to be equal, the early&lt;br /&gt;
   `if( $t_path_from == $t_path_to ) return;` skips the move entirely. The&lt;br /&gt;
   attachment is left in its old directory and `folder` still points there,&lt;br /&gt;
   even though the issue now belongs to a project whose uploads live elsewhere.&lt;br /&gt;
&lt;br /&gt;
That early return is wrong in principle as well as in this case: it compares&lt;br /&gt;
two projects' configuration, which says nothing about where any particular&lt;br /&gt;
attachment actually is.]]></description><category>attachments</category><pubDate>Mon, 28 Sep 2026 08:21:49 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37426</guid><comments>https://mantisbt.org/bugs/view.php?id=37426#bugnotes</comments></item><item><title>0037425: With `$g_login_method = LDAP`, the local password is never used</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37425</link><description><![CDATA[With `$g_login_method = LDAP`, the local password is never used:&lt;br /&gt;
&lt;br /&gt;
- `auth_does_password_match()` returns `ldap_authenticate()` directly when the&lt;br /&gt;
  configured login method is LDAP, with no fallback to the database password;&lt;br /&gt;
- `ldap_authenticate_by_username()` overwrites the stored hash with the LDAP&lt;br /&gt;
  password on every successful login.&lt;br /&gt;
&lt;br /&gt;
So the password an administrator types on manage_user_create_page.php cannot&lt;br /&gt;
ever be used. The form invites them to choose a credential that has no effect.&lt;br /&gt;
&lt;br /&gt;
manage_user_edit_page.php already suppresses the equivalent control via&lt;br /&gt;
`auth_can_set_password()`; the create page has no comparable check.&lt;br /&gt;
&lt;br /&gt;
## Change&lt;br /&gt;
&lt;br /&gt;
Hide the password fields on the create page when the login method is LDAP, and&lt;br /&gt;
skip the matching `empty_password_sure_msg` confirmation in&lt;br /&gt;
manage_user_create.php.&lt;br /&gt;
&lt;br /&gt;
The second half matters: that confirmation fires whenever the submitted&lt;br /&gt;
password is blank, so hiding the field without it would add an extra&lt;br /&gt;
confirmation step to every user creation under LDAP.&lt;br /&gt;
&lt;br /&gt;
## Notes on the approach&lt;br /&gt;
&lt;br /&gt;
`auth_can_set_password()` would be the natural helper, but it cannot be used&lt;br /&gt;
here: it calls `auth_flags()`, which throws `ClientException` for a user id of&lt;br /&gt;
0 with a blank username, and on the create page no user exists yet.&lt;br /&gt;
&lt;br /&gt;
The explicit `LDAP != config_get_global( 'login_method' )` test is instead the&lt;br /&gt;
form already used in signup_page.php, login_password_page.php,&lt;br /&gt;
lost_pwd_page.php and print_api.php.&lt;br /&gt;
&lt;br /&gt;
## Tests&lt;br /&gt;
&lt;br /&gt;
No new tests: the change is display logic on a page the suite does not&lt;br /&gt;
exercise. Verified that the existing suite is unaffected — 395 tests, no new&lt;br /&gt;
failures, against MariaDB 11 on PHP 8.3.]]></description><category>authentication</category><pubDate>Mon, 28 Sep 2026 09:04:15 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37425</guid><comments>https://mantisbt.org/bugs/view.php?id=37425#bugnotes</comments></item><item><title>0037424: Attachments are orphaned on disk when a project's file path is changed</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37424</link><description><![CDATA[bug_file.folder records where an attachment was written, but most readers ignore it and re-derive the path from the project's current file_path. project_update() lets an administrator repoint a project's file path without moving existing attachments, after which deleting an issue or project silently leaves files behind, file_get_content() returns false (empty XML export / print pages), and the SOAP API reports the attachment as missing.]]></description><category>attachments</category><pubDate>Mon, 28 Sep 2026 08:21:49 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37424</guid><comments>https://mantisbt.org/bugs/view.php?id=37424#bugnotes</comments></item><item><title>0037423: Update htmlpurifier to 4.19.1</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37423</link><description><![CDATA[PR &lt;a href=&quot;https://github.com/mantisbt/mantisbt/pull/2286&quot; rel=&quot;noopener,nofollow&quot;&gt;https://github.com/mantisbt/mantisbt/pull/2286&lt;/a&gt;]]></description><category>other</category><pubDate>Sun, 27 Sep 2026 06:42:05 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37423</guid><comments>https://mantisbt.org/bugs/view.php?id=37423#bugnotes</comments></item><item><title>0037422: Installer resets prefix/suffix to default values if step 1 fails</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37422</link><description><![CDATA[If the data entered in the installer's step 1 form does not pass validation (e.g. due to an incorrect database password), the values entered in database prefix, suffix and plugin prefix fields are reset to their default value.&lt;br /&gt;
&lt;br /&gt;
The installer should keep the values entered by the user.]]></description><category>installation</category><pubDate>Sat, 26 Sep 2026 13:47:44 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37422</guid><comments>https://mantisbt.org/bugs/view.php?id=37422#bugnotes</comments></item><item><title>0037421: Javascript errors during install</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37421</link><description><![CDATA[When installing MantisBT, the browser's javascript console reports the following errors&lt;br /&gt;
&lt;br /&gt;
&gt; [Warning] jQuery.Deferred exception: Can't find variable: config (2)&lt;br /&gt;
&gt; [Error] ReferenceError: Can't find variable: config]]></description><category>installation</category><pubDate>Sat, 26 Sep 2026 12:28:37 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37421</guid><comments>https://mantisbt.org/bugs/view.php?id=37421#bugnotes</comments></item><item><title>0037418: PHP 8.4: error messages lose their parameters ("Issue "0" not found")</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37418</link><description><![CDATA[On PHP 8.4, MantisBT 2.28.x displays error messages with empty parameters. For example, when I open a non-existent issue, I get Issue &quot;0&quot; not found. instead of the id I requested. I first noticed it in a plugin I maintain (Calendar): plugin_error() preceded by error_parameters() shows the same &quot;0&quot;, so both core and plugin errors are affected.&lt;br /&gt;
&lt;br /&gt;
Cause: in PHP 8.4, trigger_error( ..., E_USER_ERROR ) first emits an E_DEPRECATED (&quot;Passing E_USER_ERROR to trigger_error() is deprecated since 8.4, ...&quot;), and only then the actual error. Both go through error_handler(). After handling the deprecation notice, error_handler() resets $g_error_parameters = array() at its end. So when the real E_USER_ERROR arrives, the parameters are already gone: vsprintf() receives empty strings, %d placeholders render as 0 and %s ones as empty.]]></description><category>bugtracker</category><pubDate>Thu, 24 Sep 2026 04:00:29 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37418</guid><comments>https://mantisbt.org/bugs/view.php?id=37418#bugnotes</comments></item><item><title>0037393: plugin_file.php sends a gzip body with 304 Not Modified, which strict HTTP servers (Caddy) reject</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37393</link><description><![CDATA[plugin_file_include() (core/plugin_api.php) answers a matching If-Modified-Since with 304 Not Modified and no output. However, compress_handler_is_enabled() (core/compress_api.php) has already switched on zlib.output_compression via ini_set(), and PHP's zlib output handler emits a gzip stream (20 bytes: header, empty deflate block, trailer) even for an empty buffer. The raw response from php-fpm is:&lt;br /&gt;
&lt;br /&gt;
Status: 304 Not Modified&lt;br /&gt;
Last-Modified: Wed, 16 Sep 2026 06:51:05 GMT&lt;br /&gt;
Content-Encoding: gzip&lt;br /&gt;
Vary: Accept-Encoding&lt;br /&gt;
&lt;br /&gt;
&lt;20 bytes of gzip&gt;&lt;br /&gt;
RFC 9110 §15.4.5 forbids a body on 304. Apache and nginx silently drop it, so this went unnoticed. Caddy (Go net/http) refuses to write it and aborts the response:&lt;br /&gt;
&lt;br /&gt;
{&quot;level&quot;:&quot;warn&quot;,&quot;logger&quot;:&quot;http.handlers.reverse_proxy&quot;,&quot;msg&quot;:&quot;aborting with incomplete response&quot;,&lt;br /&gt;
 &quot;uri&quot;:&quot;/plugin_file.php?file=Calendar/calendar_filter.js&quot;,&lt;br /&gt;
 &quot;error&quot;:&quot;writing: http: request method or response status code does not allow body&quot;}&lt;br /&gt;
In the browser every plugin CSS/JS asset then fails with net::ERR_HTTP2_PROTOCOL_ERROR and the page renders unstyled. Since plugin_file.php sends Cache-Control: private, max-age=10800, the browser starts revalidating with If-Modified-Since about three hours after the first visit, so a MantisBT behind Caddy loses all plugin assets a few hours after each hard reload. Every plugin that serves files through plugin_file.php is affected.&lt;br /&gt;
&lt;br /&gt;
Steps To Reproduce:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Additional Information:]]></description><category>plug-ins</category><pubDate>Fri, 18 Sep 2026 04:10:39 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37393</guid><comments>https://mantisbt.org/bugs/view.php?id=37393#bugnotes</comments></item><item><title>0037391: Editing/viewing a custom field can make an unrelated custom field "disappear" and break the page</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37391</link><description><![CDATA[MantisBT keeps a temporary lookup that maps custom field names to their IDs. If a page happens to load just one specific custom field first (for example, opening the &quot;Edit Custom Field&quot; page for a single field), that lookup gets partially filled in — but the system then wrongly assumes it's fully filled in. Any later attempt on that same page to find a different custom field by name will incorrectly report that it doesn't exist, even though it does.&lt;br /&gt;
&lt;br /&gt;
In practice, we saw this cause a real crash: our site has a plugin that looks up a custom field called &quot;Bug heat&quot; by name whenever an issue number is shown as a link (e.g. in &quot;Recently Visited&quot;). If that link is shown on a page that just loaded a different custom field first, the plugin gets told &quot;Bug heat&quot; doesn't exist, and the whole page fails with a fatal error instead of just showing the link.]]></description><category>custom fields</category><pubDate>Thu, 17 Sep 2026 05:38:25 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37391</guid><comments>https://mantisbt.org/bugs/view.php?id=37391#bugnotes</comments></item></channel></rss>
