Flyspray - The bug killer!

This is the Bug Tracking System for the Flyspray project. This is not a demo!

2019-04-22: Flyspray 1.0-rc9 released See

ID Category Task Type Severity Summary Status Progress Assigned To Due In Version  asc Opened Last Edited
2048Backend/CoreBug ReportLowerror when adding data containing national charactersUnconfirmed
09.09.201509.09.2015 Task Description

this one is somehow tricky, it doesn't happens always but sometimes when fields or filenames contain national characters (I'm in Spain) flyspray returns an error looking like this one:

Query {INSERT INTO `flyspray_attachments` ( task_id, comment_id, file_name, file_type, file_size, orig_name, added_by, date_added) VALUES (?, ?, ?, ?, ?, ?, ?, ?)} with params {189,711,189_9c5d837bb10b7e0989a3c8be8d,application/pdf; charset=binary,736986,Guia de aplicación medidas difusicón y publicidad.pdf,4,1441827828} Failed! (Incorrect string value: '\xCC\x81n me...' for column 'orig_name' at row 1)

here we have a pdf named "Guia de aplicación medidas difusicón y publicidad.pdf" but I had this error also with titles or descriptions containing spanish letters...

2047User InterfaceFeature RequestMediumInserting images/screenshots from bufferUnconfirmed
2104.09.201529.09.2015 Task Description

Good if adding functional about easy way for insert screenshots to task

2046User InterfaceFeature RequestLowGrouping in Task List Unconfirmed
104.09.201504.09.2015 Task Description

Need add view of grouping in Task List by Category

2045User InterfaceFeature RequestLowneed add option for can set default Severity and Priori...Unconfirmed
204.09.201504.09.2015 Task Description

need add option for can set default Severity and Priority of new creating tasks

2042Backend/CoreBug ReportMediumfunction absoluteURI not using basedir and force_basedi...Unconfirmed
3104.09.201501.10.2015 Task Description

public static function absoluteURI($url = null, $protocol = null, $port = null)
class Flyspray

not using basedir and force_basedir from configuration file

its problem because my web-server inside have port 7777 and outside 80 (nginx and PHP-FPM)

please fix it

2038Backend/CoreBug ReportLowJscalendar must be replaced with something elseNew
223.08.201524.08.2015 Task Description

It's old. There has been a newer version 2.0. Even that one is not supported anymore, although some documents still remain available. The calendar component relies on its language translations files to be complete, or it breaks. Unfortunately, as I found out a few weeks ago, they are not, after switching the default language from english to my native one. Without having a good replacement for it, some of the translations for flyspray itself we've been getting lately are half-way unusable. Not for an ordinary user, but for anyone actually having to edit a task and its due date.

2036Backend/CoreBug ReportVery Lowsession timeoutNew
2121.08.201512.01.2016 Task Description

Got "wrong token" on creating a task whose form were open for a while in browser tab.

That means probably the session timed out on, so the anti csrf token doesn't existed anymore on the webserver.

It would'nt be a big problem if the browser backbutton works showing the ready written form again, but it was empty.

One solution would be temporarly storing it offline in the browser storages which are available with html5. But open for other simpler solutions..

2034User InterfaceFeature RequestLowreduced extended search form when applicableNew
17.08.201517.08.2015 Task Description

If a project has no versions defined yet and there are also no 'global' versions defined,
there is not need for displaying the version selects.

Same for categories. If no categories in project and no global categories then no need for displaying a cat select.

Maybe a tooltip/hint in the extended search form to inform the user that the fields were hidden for that reason.

2032User InterfaceFeature RequestLowreplace hardcoded ... 'ellipsis'New
1112.08.201512.08.2015 Task Description
Thomasz wrote:
The other thing that I cannot find how to make the text to be visible in the whole column (as with the summary I get the ... at some point of the text).

The root of this is found in scripts/index.php in function tpl_draw_cell():

case 'summary':
            $value = tpl_tasklink($task, utf8_substr($task['item_summary'], 0, 55));
            if (utf8_strlen($task['item_summary']) > 55) {
                $value .= '...';

We live in a world now, where the view port ranges from 320 pixel width mobile screens up to 4k+ wide tv screens, the amount of columns is configurable from minimal to all available fields of a task. We currently let the browser automatic decide how wide he renders each column depending on table content and available window size.

Well, that ellipsis problem can be handled at different levels:

  • motivate the task creators to use short task summary if possible (e.g. show a hint/tooltip when typing the summary gets over a limit, in our case the hardcoded limit is 55. ). Short task topic/summaries are easier to read/scan for the users.
  • replace the hard ellipsis by a pure css solution, that adapts to users browserwindow size/space in in the columns for summary
  • drop the ellipsis thing complete, task summary always shown full length, table rows adapt in height automatically.

Possible CSS solution:

2030User InterfaceFeature RequestLowshow votes of a user on user pageNew
12.08.201515.01.2017 Task Description

On the user page

/index.php?do=user&area=users&id=*&switch=1 (project switch select)

an info could be shown how many votes a user has given.

Maybe show the tasks on mouse hover (:hover) if permission to view them exists.

Needs to be considered:

  • Show count only for current project or all projects? (project param is optional on user page)
  • counts of hidden, closed or restricted projects (user permission)
  • How to handle votes of private tasks?
  • Show votes of closed tasks too? (votes on closed tasks should don’t count for max votes per project)
  • When personal “max votes per project” (open tasks) is active, this is of more value.

2029Backend/CoreFeature RequestLowpossibility to let a user describe himselfNew
112.08.201518.01.2018 Task Description

This could be done by a textarea field (like comment text or task description) on the myprofile page and stored in a new field (of type text for instance) in the user table.

This allows the user to introduce himself to the other users.

Should be restrictive, for instance only simple text allowed, no html or tags.

2028Text RenderingBug ReportMediumupgrade dokuwiki 'plugin'New
12.08.201520.08.2015 Task Description

I see php deprecation notices with php 5.6+ from the geshi syntax highlighter plugin of dokuwiki plugin sometimes. (seems to be go away on the second view, so probably not seen on cached views)

It can't be found easy with

grep -r preg_replace | grep '/e'

Because the preg_replace modifiers are added dynamic depending on the target programming language. At least in the version we have in flyspray.

2025User InterfaceFeature RequestLowAdding new tasks is too undiscoverableUnconfirmed
109.08.201509.08.2015 Task Description

The Flyspray Manual ( ) does not even hint of it, and as long as i am not logged in there's no indication anywhere in the interface that i would eventually get to do it after i manage to log-in.

In fact, i've come here to learn how to use your software, considering the fact that the site where it was deployed did not provide much help. And after i logged in into that site ( ) i still don't see any "add new task" option. That's IMO a discover-ability fail, and it originates in your own design: disabled features should not be hidden, lest users think you didn't bother to code such features. Also, you say i shouldn't report bugs against versions earlier than, but how do i know which version of Flyspray are they using?

2023NotificationsFeature RequestLowInform users if reminder is disabled in system settingsNew
04.08.201504.08.2015 Task Description

There are 5 possible cases that IMHO should be handled more user friendly:

  1. There is no cronjob for the reminder (schedule.php) setup → Reminders are never sent
  2. Reminding is disabled in the global settings → Reminders are never sent
  3. Reminder setting 'email' only → Reminders are only sent to users who set their notification setting to 'email' or 'both' and setup an email address
  4. Reminder setting 'jabber' only → Reminders are only sent to users who set their notification setting to 'jabber' or 'both' and setup a jabber address
  5. Project notification setting not set → ??? (research...)
  • If notification is disabled (1. or 2.), the notification tab on 'task details page' should adapt to that I think. (by css style or message or tooltip)
  • If notification is restricted to only one notification channel, the current user should be informed on notification tab on 'task details page' if he would receive notifications with his current notification settings.
2014Database QueriesFeature RequestVery LowAdd MS SQL Server as database backendMaybe
2120.07.201530.07.2015 Task Description

My company maybe changes to a MS SQL Server backed ERP.

In this case it could be nice to have Flyspray customized as CRM working on the same database for integration with ERP.

Well, currently just an idea.

2008User InterfaceTODOLowdifference between related tasks and related linksNew
18.07.201518.07.2015 Task Description

It should be made clear to the user what related links are in the
"new task" and "edit task" form and what a user should input in these fields.

2007Backend/CoreBug ReportLowtime on project overview activity timelinesNew
18.07.201518.07.2015 Task Description

I find it irritating to have the oldest activity on the right side and newest activity on the left side of the small activity bars.

There is also no time scale description. This could be added by showin it on :hover to keep the simple appearance.

A complete new feature would be to replace the image generation by rendering the bars in the html in the same request, e.g by inline svg or canvas element. This would enable adding some interactivity with the activity bars..
A related feature request is FS#1991 (project progress)

2002User InterfaceFeature RequestLowshow user role on autocomplete for verificationNew
122.06.201517.10.2019 Task Description

When adding peoples with the autocompleter the name itself is not always enough, especially with a growing number of registered users.

We now have the avatar icon as helper, but for quick verification it would be easier to see also the role of the user in the current project to identify the right user account.

( The red rectangle at peterdd autocomplete row is from a broken avatar upload, ignore it for this task, see  FS#1979  instead .. )

1999XMPP/JabberFeature RequestMediumjabber xmpp configurationNew
8122.06.201511.02.2017 Task Description

There should be some help at the configuration sections for setting up jabber/xmpp notifications.

How someone can test it?

Must the admin setup his own jabber/xmpp server or are there recommended servers?

I registered with psi+ instant messager as at for testing
and configured it here in my account too, but got no jabber messages.

Email notifications works and I set up both sending.

1991User InterfaceFeature RequestMediumAbillity to drill into progress graph from toplevel vie...New
17.04.201524.04.2015 Task Description

From the overview view for a project the progress charts should be large and show dates so can have a better sense for absolute progress and then when click it should see it full size going back to start of project and showing dates.

1988Installer and UpgraderBug ReportMediumPassword Field for AdminUnconfirmed
302.04.201512.05.2015 Task Description

The installer requests a password for the admin account, and provides a default one.

Because this field is not type=”password”, the browser caches this data for any field named “admin_password”

This also applies to future installations of the software.

I have marked this as critical as this can pose a security hazard. A different implementation would be allowing entry of password, or in the case of wanting to provide a default one, have two password fields prepopulated, and a text one prepopulated so that it can be viewed by the end user.

1987APIFeature RequestMediumREST API to get metrics from flyspray projectsUnconfirmed
229.03.201506.10.2015 Task Description

I need metrics for flyspray projects about a rest api. For example the count of issues for status, priority. I want use this values for my code analysis system and other internal tools. It is possible to create a rest api with user authorization and only for metrics data?

1985Database QueriesFeature RequestVery LowFor developers - testing with huge flyspray data setsNew
224.03.201516.03.2016 Task Description

Here I will put some sql examples for the current developers to have a base for testings:

Starting with a default installation with its 1 example project and 1 example task:

I hope we can put all this into valuable phpunit tests for automatic testing with travis-ci.

Still TODO, do not use:
After fresh Flyspray install, add some more projects:

INSERT INTO flyspray_projects (project_title,project_is_active,others_view,anon_open) VALUES('Inactive Project', 0, 1, 1);
INSERT INTO flyspray_projects (project_title,project_is_active,others_view,anon_open) VALUES('Active Project Anonymous Reporting', 1, 1, 1);
INSERT INTO flyspray_projects (project_title,project_is_active,others_view,anon_open) VALUES('Deleted Project', 1, 1, 1);
DELETE FROM flyspray_projects WHERE project_title LIKE 'Deleted Project'; -- delete to have an id gap
INSERT INTO flyspray_projects (project_title,project_is_active,others_view,anon_open) VALUES('Active Project NO Others View', 1, 0, 0);
-- There should now be 4 projects with ids (1,2,3,5).
-- Now lets add some extra roles for a few projects
INSERT INTO flyspray_groups (group_name,project_id,manage_project,view_tasks,open_new_tasks,modify_own_tasks,view_own_tasks,view_groups_tasks) VALUES('Project3 Manager', 3, 1, 1, 1, 1, 1, 1 );
INSERT INTO flyspray_groups (group_name,project_id,manage_project,view_tasks,open_new_tasks,modify_own_tasks,view_own_tasks,view_groups_tasks) VALUES('Project3 Reporter', 3, 0, 1, 0, 1, 1, 1 );
INSERT INTO flyspray_groups (group_name,project_id,manage_project,view_tasks,open_new_tasks,modify_own_tasks,view_own_tasks,view_groups_tasks) VALUES('Project5 Developer', 5, 0, 1, 1, 1, 1, 1 );
-- Then create some more users:
INSERT INTO flyspray_users(user_name,real_name,email_address,account_enabled,tasks_perpage,lang_code) VALUES('tester1','T1Developer','',1,100,'en');
INSERT INTO flyspray_users(user_name,real_name,email_address,account_enabled,tasks_perpage,lang_code) VALUES('tester2','T2Reporter_P3Manager','',1,100,'de');
INSERT INTO flyspray_users(user_name,real_name,email_address,account_enabled,tasks_perpage,lang_code) VALUES('tester3','T3Basic_P3Reporter_P5Developer','',1,100,'fr');
-- And put them into a global group and a few into project roles too:
INSERT INTO flyspray_users_in_groups(user_id,group_id) VALUES(2,2);
INSERT INTO flyspray_users_in_groups(user_id,group_id) VALUES(3,3);
INSERT INTO flyspray_users_in_groups(user_id,group_id) VALUES(3,8);
INSERT INTO flyspray_users_in_groups(user_id,group_id) VALUES(4,4);
INSERT INTO flyspray_users_in_groups(user_id,group_id) VALUES(4,9);
INSERT INTO flyspray_users_in_groups(user_id,group_id) VALUES(4,10);
-- And lets fill the Database with 10 different configured task to simulate different cases:
INSERT INTO flyspray_tasks(project_id,task_type,item_status,supertask_id) VALUES(1,1,1,0); -- id2 in first project
INSERT INTO flyspray_tasks(project_id,task_type,item_status,supertask_id) VALUES(2,1,1,0); -- id3 in inactive project
INSERT INTO flyspray_tasks(project_id,task_type,item_status,supertask_id) VALUES(2,1,1,3); -- id4 in inactive project
INSERT INTO flyspray_tasks(project_id,task_type,item_status,supertask_id) VALUES(3,1,0,6); -- id5 status 0,supertask_id6
INSERT INTO flyspray_tasks(project_id,task_type,item_status,supertask_id) VALUES(3,1,0,0); -- id6
INSERT INTO flyspray_tasks(project_id,task_type,item_status,supertask_id) VALUES(3,1,1,6); -- id7
INSERT INTO flyspray_tasks(project_id,task_type,item_status,supertask_id) VALUES(5,1,1,0); -- id8
INSERT INTO flyspray_tasks(project_id,task_type,item_status,supertask_id) VALUES(5,1,1,8); -- id9
INSERT INTO flyspray_tasks(project_id,task_type,item_status,supertask_id) VALUES(5,1,1,9); -- id10
-- And now lets fill the database with many task referencing the 10 base tasks (10k or more rows) by repeating the following until enough (grows exponential x**2 !
INSERT INTO flyspray_tasks (project_id,task_type,item_status, supertask_id, item_summary) SELECT 3,1,1,FLOOR(RAND()*11),RAND() FROM flyspray_tasks;

These Examples can be used for finding bottle necks or problems on huge installations.

1983Backend/CoreFeature RequestLowExport Roadmap as "Changelog"Unconfirmed
21.03.201521.03.2015 Task Description

It's a little like "text version". So you could use this exported changelog within a new release.

I think good was:

  • Only resolved tasks ordered by date (but of course without displaying the date) and only public accessible tasks
  • Without task number ("FS#...")
  • A download function via button
1977Backend/CoreBug ReportLowWeird URL after closing task with referenceUnconfirmed
115.03.201518.03.2015 Task Description

On Mac OS Safari:

I just closed a task and wrote the following into the comment for closing:

"See also F.S.#.14" (of course without the points). When I then click the link in the comment box (below the task details) I'm redirected to:
"http:/flyspray.stefan-herz%0Aog.tld/index.php?do=details&task_id=%0A14". No matter if #14 is closed or not.
It worked with Firefox.

Any suggestions?

1971Backend/CoreFeature RequestLowa field like challenge level or doom levelNew
1964DocumentationFeature RequestLowOn page documentationNew
1962Backend/CoreFeature RequestLowSMS notification - sending notifications via sms same a...New
1961User InterfaceFeature RequestLowshow new notifications in flysprayNew
1960Backend/CoreBug ReportMediumforeign key relations between versions and tasksNew
1958User InterfaceFeature RequestLowPreselect values for event log viewNew
1957User InterfaceFeature RequestLowautomatic temporary storing while writing/editing taskResearching
1856Backend/CoreBug ReportMediumWrong timezonesResearching
1844TranslationsFeature RequestLowCzech translateWaiting on Customer
1791Backend/CoreFeature RequestMediumAbility to merge version, OS, etcSuspended
1749User InterfaceBug ReportLowSubmit form buttons on lower rightUnconfirmed
1697User InterfaceFeature RequestMediumDetailed Due Date, SMS Notification, Deadline Warning N...Unconfirmed
1670User InterfaceFeature RequestLowAssign Key-Shortcuts to form fieldsUnconfirmed
1521Backend/CoreFeature RequestLowAssignees should be able to see and create reminders fo...Unconfirmed
1518NotificationsFeature RequestLowShow last date/time when a reminder was sentUnconfirmed
1481User InterfaceFeature RequestLowDiff visualisationUnconfirmed
1236User InterfaceFeature RequestLowMark Issue As Verified or UnverifiableUnconfirmed
1222Backend/CoreFeature RequestMediumWorkflow engine / Role-based State Transition Rules Eng...Unconfirmed
2491Backend/CoreBug ReportLowgroup member links if project manager but not adminNew
2490User InterfaceBug ReportMediumReset Password's Username field has maxlength of 20 - t...Confirmed
2453Backend/CoreBug ReportMediumvalidate category before storing a new taskNew
2221Installer and UpgraderInformationLowNotices on install with PHP7New
2207Backend/CoreBug ReportHighNonpublic project titles and project description exposi...Confirmed
2201APIBug ReportHighI got Fatal Error on the Github OAuthUnconfirmed
Showing tasks 151 - 200 of 303 Page 4 of 7

Available keyboard shortcuts


Task Details

Task Editing