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   desc Opened Last Edited
2012Backend/CoreFeature RequestMediumManaging TagsNew
1.1 devel418.07.201512.11.2015 Task Description

Tags can only be added on the "new task" page, not managed on the "edit task"-page.

2031User InterfaceTODOLowRendering overduePlanned
1.1 devel412.08.201514.08.2015 Task Description

One of my task has 8.9166666666667 days left. This is very very very very accurate !

A rounding would look better !

Running Alpha2 now, Cannot use this on 'reported version' here on this site

Edit: Rounding is adhoc fixed on 2015-06-21 in dev in template file, but code should IMHO be centralized, not template, see comments

1481User InterfaceFeature RequestLowDiff visualisationUnconfirmed
4104.05.200809.03.2015 Task Description

Flyspray should be able to render attached patches visually like, for example, Bugzilla:

2081User InterfaceBug ReportLowUI for adding comment while editing task doesn't use HT...Confirmed
429.10.201506.11.2015 Task Description

While editing an existing task, there’s a “+” button you can click to add a comment as part of the edit. Unfortunately this is just a plaintext box instead of the HTML editor used everywhere else, so it’s impossible to get proper line/paragraph breaks if a comment is entered with this UI.

This problem makes it necessary to edit a task and add a comment as two separate steps, whereas in it was possible to do them together in one step.

Note that this is the case with syntax_plugin=”none”. I don’t know if it’s also a problem when using other values for that setting.

2087Backend/CoreInformationHighSee no Editor in Add New TaskUnconfirmed
4104.11.201505.11.2015 Task Description


I can’t see the Editor when I make new task. Also when I editing a exciting task.

See nothing to put any HTML code in it. Can you help me!?

I use this version: Flyspray

2094EmailBug ReportHighAfter Upgrade All Users Receive Notifications for All T...Unconfirmed
4106.01.201613.01.2016 Task Description

I upgraded from 0.9.9 to 1.0-beta2 a few hours ago. I received an error about oauth during the upgrade (didn’t think to take a screenshot). In any case, the upgrade otherwise seemed to go smoothly. When I subsequently closed a few tasks people who weren’t assigned to receive notifications for those tasks, even old consultants whose account I had disabled years ago, received the email notification. I also received lots of bounced emails from accounts whose email addresses were no longer existant.

Has anyone else experienced this? I’ve gone into the database and null’d out the email addresses of old accounts to prevent further spam. Not only did it notify everyone who had an account (active or disabled) but it put their email address in the To: field for all to see.

2101Backend/CoreBug ReportLowMobile view GUI bugConfirmed
418.02.201624.02.2016 Task Description

As you can see on screenshot attachment the GUI on mobile view is not OK.

I marked with red field what need to be fixed.

Phone used: Samsung Note 4.

2122Backend/CoreBug ReportMediumopen_basedir restrictions for FS_CACHE_DIR not respecte...Suspended
422.04.201616.08.2016 Task Description

Edit by peterdd: renamed task summary

Affected versions: at least Flyspray 0.9.9(.7/*?) up to Flyspray 1.0 RC1

Original report: Title ‘Problem regarding 0.9.7 (1.0) to 1.0 RC-1 update’

I tried to update BT from modified version (database in original state) 0.9.7 to 1.0 RC-1 but I got strange error.

PHP is 5.6.

I try to use:
Precompiled with 3rd party libs for PHP5.6

and was doing as was written on upgrade procedure.

Strange is that “D:\SShopBT\includes\class.flyspray.php” there are errors regarding writtable path... Because the path is correct and all other Joomla and Wordpress web sites are working correctly..

After upgrade web site do not work att all. Login not working - just get error. So I must reverse (use backup) database and files.

Server is Windows Server and IIS (Internet Information Services)..

Complete error was (also seen in screenshot):

Warning: is_writable(): open_basedir restriction in effect. File(C:\PHP-temp) is not within the allowed path(s): (D:\) in D:\SShopBT\includes\class.flyspray.php on line 1162 
Warning: is_writable(): open_basedir restriction in effect. File(C:\PHP-temp) is not within the allowed path(s): (D:\) in D:\SShopBT\includes\class.flyspray.php on line 1164 
Warning: is_dir(): open_basedir restriction in effect. File(C:\Windows\TEMP\e865fa2fdfc11dbb32cc6262d247e766) is not within the allowed path(s): (D:\) in D:\SShopBT\includes\ on line 82 
Warning: Cannot modify header information - headers already sent by (output started at D:\SShopBT\includes\class.flyspray.php:1162) in D:\SShopBT\header.php on line 14 
Warning: Cannot modify header information - headers already sent by (output started at D:\SShopBT\includes\class.flyspray.php:1162) in D:\SShopBT\header.php on line 15 
Warning: Cannot modify header information - headers already sent by (output started at D:\SShopBT\includes\class.flyspray.php:1162) in D:\SShopBT\header.php on line 16 
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at D:\SShopBT\includes\class.flyspray.php:1162) in D:\SShopBT\includes\class.flyspray.php on line 893 
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at D:\SShopBT\includes\class.flyspray.php:1162) in D:\SShopBT\includes\class.flyspray.php on line 893 
Warning: Cannot modify header information - headers already sent by (output started at D:\SShopBT\includes\class.flyspray.php:1162) in D:\SShopBT\index.php on line 93 
Warning: Cannot modify header information - headers already sent by (output started at D:\SShopBT\includes\class.flyspray.php:1162) in D:\SShopBT\index.php on line 94 Headers are already sent, this should not have happened. Please inform Flyspray developers.
2214Backend/CoreInformationLowChanging status of task automaticallyUnconfirmed
417.10.201606.11.2016 Task Description

Hello again,

I was wondering (again :-) ) if the following scenario is possible for this bug tracking solution:

Our company uses this bug tracker mainly for helpdesk issues. However, our main users (except IT department) don’t seem to easily understand how to change the status of a ticket, they aren’t interested in doing that also.

So I would like to know if there is a way that we can develop some automatisation in changing the status automatically after customer replies to a message.

Let’s see the following scenario:

  1. user A posts a new task
  2. user B assigns himself (or other) to that specific task - the status automatically is changed to Assigned
  3. user B replies to task by adding a comment - as a result of adding the new comment the task status should change automatically to Waiting for customer - without the need that user B to change the status
  4. user A checks the comment from user B and decides to comment back to him. After pressing the Add comment button, the status should change automatically to Waiting for assignee

If the task is needed to have another status, the users can change them manually, but the automated part should be the waiting for customer and assignee.

On a basic algorithm it shouldn’t be hard (if user is logged in and is task owner, then after comment, task detail - status changing to id 4-5 from task-statuses table on mysql; if user is logged in and assigned to task, after adding comment change status 4-5 from task-statuses table).

I saw this thing on an otrs platform and it is quite ok for a simple user like ours.

Is there any way that we can personalise the flyspray in this way?

If yes, please give us an elaborate answer with what I should do for this to work.

Thanks in advance.

2330Backend/CoreBug ReportLowPHP Notice: Undefined offset: 0 in scripts/index.php o...Unconfirmed
423.01.201730.01.2017 Task Description

Pretty minor, but seems to show up regularly enough in our logs. The line in question:

$outfile = str_replace(' ', '_', $tasks[0]['project_title']).'_'.date("Y-m-d").'.csv';
2337DocumentationInformationLowFlyspray ThemesNew
402.02.201716.02.2017 Task Description
  • Flyspray 1.0 includes 1 default theme CleanFS. That decision was made to reduce maintainance effort and the old blue theme was dropped. Also the CleanFS contains UI-logic implemented in HTML/CSS and tries to be usable even for the people who turned off javascript in their web browsers for security reasons. (and reduces spam on many other websites too without an adblocker)
  • Current Flyspray source and the theme CleanFS provides several methods to customize the layout without touching the .tpl files. These are:
    1. custom_*.css files that extend or overwrite properties of CleanFS/theme.css
    2. 2 fields in admin area where to put code

      For instance a corporate footer menu or something like that.

Advantages of CleanFS instead running your own

  • Theme is maintained with Flyspray source. Detected security issues related with themes are fixed with Flyspray releases.
  • Added features or capabilities are implemented for the default theme.

‘Subtheme’ can be a compromise: Theme CleanFS is always uptodate in sync with Flyspray. Subthemer only needs to check changes required for own subtheme .tpl files.

I do not want complete stop people from writing their whole new template, it allows new ideas implemented or alternative usability. For them, it is probably better to create a Github project for that theme.

This is just raw info from me and can be discussed. Something should be finally written on in the documentation area.

2520NotificationsFeature RequestLowSend a notification for a new task in slack integration...Unconfirmed
424.10.201830.03.2020 Task Description

Hi, i made a way to integrate slack in flyspray using webhooks.. i not added to git.. if some can add for me it’s ok.

The process is simple.. maybe in the front the team can add a field for add the webhook for each action could be better.. in this moment the webhook is triggered only for newtask using the log method.. but you can simply add some “if” for each “type” of log.


1. Create a new field in the table flyspray_users named “slack”, and add the user slack for each user.
2. Edit the file /includes/class.flyspray.php , go to the function “logEvent” and change it by this:

public static function logEvent($task_id, $type, $newvalue = '', $oldvalue = '', $field = '', $time = null)
				global $db, $user;
				// This function creates entries in the history table.  These are the event types:
				//  0: Fields changed in a task
				//  1: New task created
				//  2: Task closed
				//  3: Task edited (for backwards compatibility with events prior to the history system)
				//  4: Comment added
				//  5: Comment edited
				//  6: Comment deleted
				//  7: Attachment added
				//  8: Attachment deleted
				//  9: User added to notification list
				// 10: User removed from notification list
				// 11: Related task added to this task
				// 12: Related task removed from this task
				// 13: Task re-opened
				// 14: Task assigned to user / re-assigned to different user / Unassigned
				// 15: This task was added to another task's related list
				// 16: This task was removed from another task's related list
				// 17: Reminder added
				// 18: Reminder deleted
				// 19: User took ownership
				// 20: Closure request made
				// 21: Re-opening request made
				// 22: Adding a new dependency
				// 23: This task added as a dependency of another task
				// 24: Removing a dependency
				// 25: This task removed from another task's dependency list
				// 26: Task was made private
				// 27: Task was made public
				// 28: PM request denied
				// 29: User added to the list of assignees
				// 30: New user registration
				// 31: User deletion
				// 32: Add new subtask
				// 33: Remove Subtask
				// 34: Add new parent
				// 35: Remove parent
				$query_params = array(intval($task_id), intval($user->id),
				((!is_numeric($time)) ? time() : $time),
				$type, $field, $oldvalue, $newvalue);
				if ($type == 14) {
					$usuarios = $db->query("SELECT DISTINCT a.slack, c.item_summary, d.project_title
						FROM {users} a
						JOIN {assigned} b on b.user_id = a.user_id
						JOIN {tasks} c on c.task_id = b.task_id
						JOIN {projects} d on d.project_id = c.project_id
						WHERE b.task_id = ?
						and a.slack <> '-'", array(intval($task_id)));
						$slackUsers = $db->fetchAllArray($usuarios);
						foreach ($slackUsers as $users) {
							$data = array(
								'text' => "New task: Project: " . $users['project_title'] . " | summary: " . $users['item_summary'] . " | taskId:" . $task_id ,
								'username' => "bott inslack",
								'link_names' => "1",
								'channel' =>  "@" . $users['slack'],
								'icon_emoji' => ":panda_face:"
							$options = array(
								'http' => array(
									'header'  => 'Content-type: application/x-www-form-urlencoded\r\n',
									'method'  => 'POST',
									'content' => json_encode($data)
                                                      // DEFINE SLACK WEBHOOK
							$context  = stream_context_create($options);
							$result = file_get_contents("", false, $context);
					if($db->query('INSERT INTO {history} (task_id, user_id, event_date, event_type, field_changed,
						old_value, new_value) VALUES (?, ?, ?, ?, ?, ?, ?)', $query_params)) {
							return true;
						return false;
2522Backend/CoreFeature RequestLowemail vs username login issuesResearching
431.10.201802.11.2018 Task Description

So, I’ve been away from Flyspray for more than a few years. When I tried to login to the Flyspray here, I was unable to login, because I don’t remember my username, and I was unable to retrieve my username, because there’s no function for that. I was *also* unable to re-register the same email address. SO, having an account system that requires both unique usernames and unique email addresses, but has no way of retrieving one from the other, doesn’t work out so well.

Suggestion: either use email as username, or add a function to retrieve username (perhaps along with password retrieval . . password retrieval would then have to take username -or- email, probably)

1820Backend/CoreFeature RequestLowMerge comments, history, and detailsNew
2.0317.01.201325.05.2016 Task Description

Should be more of a link thread of activity rather than segmented

1876Backend/CoreFeature RequestLowAdd wiki page tabPlanned
2.03126.09.201306.03.2015 Task Description

It will quite useful to have wiki page for project.

1720Backend/CoreFeature RequestLowBetter Access Control Lists and User / Group ManagementPlanned
1.1 devel301.05.201220.03.2015 Task Description

We need to have a better way to do user rights, group rights and manage users.

Here is what I am thinking, global administration can go to a ACL tab. Click on it and you have a simple way to add a new user / group. Two tabs on top are User Rights and Group Rights. These are global so each project will inherit the global setting for user / group.

Clicking on User Rights tab will lists users with a table to grant user rights. Specific to that user, it would be the same for group rights tab.

You can also search by a user name. This will make things faster to find that specific user.

1812Backend/CoreFeature RequestLowMultiple email addressesPlanned
1.1 devel317.01.201330.12.2015 Task Description

An account should be able to have multiple email addresses associated with it. For example, my primary email might be, but I should also be able to log in via or other addresses I add.

1847User InterfaceFeature RequestLowMake default theme responsivePlanned
1.1 devel314.03.201316.10.2015 Task Description

I think it is time to think about an theme optimizied for mobile Devices.

We will not maintain several themes. We will review the current CleanFS theme to make it responsible instead.

1919Backend/CoreBug ReportLowAJAX Quick-Edit on category and task pagesPlanned
1.1 devel3109.07.201407.12.2015 Task Description

Ability to click field to edit ticket

TODO: return handler if request ok or fail.

TODO: also clicks on label should trigger show form.

Maybe the whole “click to active for editing this field” to one click too much.
So if the user has the rights to edit the value the form input or action button should be shown when viewing a task.
All other people just see the value if they have the right to view the value.

1.1 devel307.03.201509.03.2015 Task Description

So, the new website is now online, the codestyle part is empty and I think we need to speak about them...

I can happily reformat the whole project once we have decided the whole thing. Don't forget, too strict code style leads to code style not being respected, so crap like max line length should be avoided. I personnaly don't know anybody coding from their mobile phones. I sometimes do check some code on it, but long lines never disturbed me as long as the line is not 5k chars long.

I think we should go for a standard one.

Things like:

- Do use brackets even if single lined condition
- Variable names have spaces replaced by the next words first letter in capital, start with a lower case
- Same goes for functions
- Etc etc. Pretty much of PSR-1 maybe 2

What I don't understand is the use of spaces, and I'd be for tabs instead of 4 spaces (some files use 2 spaces, some 3...). Most of the dev tools are by default set to use tabs and not spaces. And be seeing the code now we see that it clearly. So i'd be for reformatting into tabs, the whole, and same time fixing the broken identation in every files.

I could write it down for the website

1.1 devel307.03.201509.03.2015 Task Description

Upon my implementation for an easier date selector, I think we should rework it as follow:

  • Drop extended date concept
  • Add a Time format
  • Extended dates field become a concatenation of date format and time format.
    • The above make it easier to select your preferences
  • Rename GMT to UTC
  • Add automatic daylight saving configs
1969User InterfaceFeature RequestLowsearch form with Advanced search toggle layoutNew
1.1 devel312.03.201519.09.2015 Task Description

I think the button advanced search button should not be placed right beside seach input field as full button.

Maybe a small down arrow under the simple search form with a horizontal line and a title tag as tooltip.

Any comments?

1975Backend/CoreFeature RequestLowBatch processing of tasks in tasklistPlanned
1.1 devel3115.03.201513.12.2016 Task Description

E.g. actual version, dueVersion, ...

Edit by peterdd: Topic was discussed earlier on (edit:It seems Jordan turned “issues” on off in favor of

The feature still exists but it is turned off until finished in a secure way. The possibility of sub and parent tasks requires many checks.

1982Backend/CoreBug ReportLowdouble entries in assignees listNew
1.1 devel320.03.201511.02.2016 Task Description

maybe yet fixed in 1.0 dev, but here my account is shown twice for selection if u edit a task.

Internally in the form also with the same id, so probably not a big problem.

I registered some years ago, maybe this year jordan(?) added me again or with another email adress? Maybe I have two addresses under on account here, which is a feature, not a bug.

But for the assignee list it should “group by user_id”.

2074User InterfaceBug ReportMediumOpening tasks from tasklistNew
1.0318.10.201518.07.2016 Task Description

Removing table on row click made it impossible to open a task’ details if you do not display the task id and summary on the task list, because now those two cells are the only clickable items to open a task, instead of the entire line being the hyperlink

2121Backend/CoreBug ReportMedium'my assigned tasks' uses like %?% search instead of use...Confirmed
2598User InterfaceBug ReportLowuser registration in admin area: "username taken" but t...Assigned
1236User InterfaceFeature RequestLowMark Issue As Verified or UnverifiableUnconfirmed
1988Installer and UpgraderBug ReportMediumPassword Field for AdminUnconfirmed
2042Backend/CoreBug ReportMediumfunction absoluteURI not using basedir and force_basedi...Unconfirmed
2062User InterfaceTODOLowreview do=admin&area=editallusersNew
2096Backend/CoreFeature RequestVery LowAdd an option to force httpsMaybe
2108User InterfaceFeature RequestMediumSupport local language when install FlysprayConfirmed
2134Backend/CoreBug ReportHighCannot assign a task to other projectPlanned
2136User InterfaceBug ReportMediumAfter updating user properties as admin - return to wro...Confirmed
2202Installer and UpgraderBug ReportHighUnable to upgradeUnconfirmed
2222GreekInformationVery LowGreek translation issuesUnconfirmed
2225GreekBug ReportVery LowGreek uses slash for datesConfirmed
2309User InterfaceBug ReportLowPHP noticed displayed on default "All Projects" page.Unconfirmed
2318Installer and UpgraderBug ReportLowsyntax_plugin required when selected ckeditor in SetupRequires testing
2325User InterfaceFeature RequestLowbig image attachments: fit to browser window width in L...New
2327Backend/CoreFeature RequestLowvisibility-option for private tasksUnconfirmed
2333Backend/CoreInformationLowSet Default View on Login?Unconfirmed
2545User InterfaceInformationLowCan't delete system wide 'Task Statuses'Unconfirmed
2551AuthenticationInformationLowLDAP/AD integrationUnconfirmed
2552EmailBug ReportHighEmail TLS error (was 'Mail Adress encryption')Unconfirmed
2582Backend/CoreInformationLowHow to reach internal windows share (was: Internal URL)Unconfirmed
1539Backend/CoreFeature RequestLowSitemap.xml GenerationUnconfirmed
1529Backend/CoreBug ReportLowInactivity-close doesn't work, bug is left openMaybe
Showing tasks 51 - 100 of 316 Page 2 of 7

Available keyboard shortcuts


Task Details

Task Editing