<?xml version="1.0" encoding="utf-8"?>
<!--RSS generated by Flaimo.com RSS Builder [2026-10-06 01:42:36]-->
<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>0037441: Неправильний відмінок в слові</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37441</link><description><![CDATA[Замість слова &quot;Кінострічок&quot;, має бути слово &quot;Кінострічки&quot;]]></description><category>localization</category><pubDate>Mon, 05 Oct 2026 13:01:27 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37441</guid><comments>https://mantisbt.org/bugs/view.php?id=37441#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>Mon, 28 Sep 2026 08:08:36 -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>0037428: Login form with username and password</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37428</link><description><![CDATA[Hello,&lt;br /&gt;
we were using version 1.3.0 for a long time and migrated to 2.28.4, all is fine except the login form&lt;br /&gt;
Would it be possible to customize the form as to display username and password on the same screen&lt;br /&gt;
that allows to save passwords in the web wallet and not have to input'em at every password request .&lt;br /&gt;
&lt;br /&gt;
some plugin? tweaking login_page.php/login.php ?&lt;br /&gt;
&lt;br /&gt;
Any help is highly appreciated and thank You!]]></description><category>customization</category><pubDate>Sun, 27 Sep 2026 14:50:18 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37428</guid><comments>https://mantisbt.org/bugs/view.php?id=37428#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>0037392: Users with "Reporter" access can't submit a bug report if they pick any product version at all</title><author></author><link>https://mantisbt.org/bugs/view.php?id=37392</link><description><![CDATA[When reporting a new issue, users can pick a &quot;Product Version&quot; from a dropdown. For Reporters, that dropdown correctly only offers released versions — that part works fine. But when the report is actually submitted, the system rejects it, saying the version is invalid — even though it's a perfectly normal, released version that was legitimately offered in the dropdown.&lt;br /&gt;
&lt;br /&gt;
This only happens for accounts below &quot;Developer&quot; level (the default setting for who's allowed to report against unreleased versions). Administrators and Developers don't see this problem, so it's easy to miss unless you test as a lower-permission user.]]></description><category>other</category><pubDate>Thu, 17 Sep 2026 05:24:17 -0400</pubDate><guid>https://mantisbt.org/bugs/view.php?id=37392</guid><comments>https://mantisbt.org/bugs/view.php?id=37392#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><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>Mon, 21 Sep 2026 03:17:06 -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></channel></rss>
