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  asc Progress Assigned To Due In Version Opened Last Edited
2568DocumentationBug ReportMedium[MANUAL] a missing image in "Understanding Permissions:...Unconfirmed
101.09.201902.09.2019 Task Description

In the page , it is written

Shown is an image of the permissions page for the Flyspray project’s Contributors group

but there is no image in there.

I can think of two ways of dealing with that I guess:

  1. add an image
  2. remove the sentence

What do you think?

1222Backend/CoreFeature RequestMediumWorkflow engine / Role-based State Transition Rules Eng...Unconfirmed
11625.03.200705.05.2019 Task Description

I have been working with Eventum ( for quite sometime now and in contrast, I like Flyspray for its simplicity and practicality. But one thing I badly miss (and something that Eventum scores high) is a Workflow Engine. If not a sophisticated W.E., I (as an Admin / Manager) should be able define role-based state transition rules of the tasks reported in a particular project. For example, I should be able to implement the following scenario:

  1. For a “Developer”, the subsequent tasks from various states. Likewise for other roles
  2. “Developer” should not be able close out the bug reports. He/she can only flag them as implemented. The “Reporter” of the bugs or the “Manager” alone should be able to close out issues
  3. ..
  4. .. it will go on like that ;-)

This feature, in my opinion, is very crucial for corporate organizations to give a serious consideration to Flyspray.

2607AuthenticationBug ReportLowWhitespaces in email address fieldUnconfirmed
03.05.202003.05.2020 Task Description

When I try to register at flyspray and add a space before the email address, registering does not work, I get the error message: “You did not enter a valid email address”. But my email progam ignores the space when I do the same there.

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?

2327Backend/CoreFeature RequestLowvisibility-option for private tasksUnconfirmed
315.01.201717.01.2017 Task Description

We have some private Tasks in our FS-bugtracker to hide them from normal reporters. But we also have some external beta-testers in a betatesters-group and they should be able to see (and check) the private tasks without giving them a project manager status. So it would be good, if there is a switch in the group option to give specific groups the right to see private tasks.

2479Backend/CoreInformationLowUser table seems really complexUnconfirmed
110.08.201810.08.2018 Task Description

why not store all the user preferences in preferences or user_prefernces? Then users can just be simple username, email, password?

2430Backend/CoreFeature RequestLowUser dependency on projectUnconfirmed
216.03.201720.03.2017 Task Description

So, there would be great option if we can set permission to users to see and post only in specific opened projects in bug tracker.

Idea is, that user has all right to all projects, but in some cases we want that user can see only projects which is allowed and also to publish new tasks to only allowed projects.

In that case tasks overiew is locked and user must be logged in to see opened tasks.

2097User InterfaceBug ReportMediumUrl incorrect for view attachementUnconfirmed
10116.01.201602.03.2016 Task Description

I’m using URL rewriting…

If I click on the link, the picture doesn’t appear.

It’s ok in task history. The right URL is


2324Backend/CoreInformationLowUpdate composer.jsonUnconfirmed
31.12.201631.12.2016 Task Description
symfony/event-dispatcher suggests installing symfony/dependency-injection ()
symfony/event-dispatcher suggests installing symfony/http-kernel ()
guzzle/guzzle suggests installing guzzlehttp/guzzle (Guzzle 5 has moved to a new package name. The package you have installed, Guzzle 3, is deprecated.)
Package guzzle/guzzle is abandoned, you should avoid using it. Use guzzlehttp/guzzle instead.
2449Backend/CoreBug ReportLowUnexepted exception on smtp gmail sendUnconfirmed
729.10.201710.01.2018 Task Description

On creating task we got error on event which must send e-mail via “google mail”.

I hoped that in rc6 this will be solved but not. This error was the same on rc4.

2202Installer and UpgraderBug ReportHighUnable to upgradeUnconfirmed
310.09.201611.10.2016 Task Description

I tried to upgrade from to 1-0-rc1 but I end in an infinite redirection loop

I tried to use the github version, to change the domain name (hosted in dreamhost), to use/not-use the .htaccess, upgraded the version of php from 5.5 to 5.6, to change all the settings in the flyspray.conf.php file, but still having the error after to perform the Upgrade task and removing the setup dir

Used the prepacked dependencies since i cannot install them in this server


2209AuthenticationFeature RequestMediumTLS support for LDAPUnconfirmed
109.10.201604.09.2019 Task Description

It would be helpful to have communication with LDAP via TLS

2521EmailInformationLowTLS email with self-signed certificate doesn't work, "C...Unconfirmed
531.10.201803.11.2018 Task Description

I use a personal email server with a self-signed certificate (i’m not sure if it’s possible to use my https certificate for that? i don’t even kind of understand what all I did to get this email server setup, and I don’t really want to mess with it... especially since my https certificate comes from Let’s Encrypt... so i might have to muck with the email server every 60 days ... not sure?) ..

anyway, when I try to connect to it with Flyspray, I get above the Test Email button, “Completely unexpected exception: Unable to connect with TLS encryption
This should never happend, please inform Flyspray Developers”

Most systems have a way to override and accept an invalid cert, but I’m not seeing anything obvious about doing that with Flyspray. Does a function for this already exist, or do we need a way to do that? (alternatively, I would accept help in properly configuring my email lol)

2589User InterfaceBug ReportLowTime zone in user settings is confusingUnconfirmed
228.12.201928.12.2019 Task Description


When registering and when later editing users settings it’s possible to specify “Time zone” but the way it’s implemented is confusing. What I see is a drop-down list with GMT[+-]:digit: and this is an odd way to set the timezone for multiple reasons:

1. “GMT” is a word without universally accepted and defined meaning these days, see ;

2. Often time zone specification needs to include the rules when (if ever) to apply DST and what abbreviation is to be used in different cases. See TZ description on .

Taking these two points into account I can’t see how to meaningfully use this feature.

TIA for looking into it.

2210User InterfaceInformationLowTasklist color for due dateUnconfirmed
612.10.201618.10.2016 Task Description


I was wondering if there is a way to make the task more visible if it wasn’t completed due to the date that was selected by a user - let’s say a yellowish background in tasklist, just like the ones from custom css based on severity, but that will take color if the task has the due date passed.

2107AuthenticationFeature RequestLowSupport CAS Server AuthenticateUnconfirmed
202.03.201604.09.2019 Task Description

Please support Central Authentication Service, thank you.

1749User InterfaceBug ReportLowSubmit form buttons on lower rightUnconfirmed
117.06.201224.09.2015 Task Description

Any form should have its submit button directly below and to the right of the form.

This is most egregious on the New Task page where you have to scroll back up to the top right to submit.

2223GreekBug ReportVery LowSome strings need splitting or replacementUnconfirmed
2124.10.201625.10.2016 Task Description

There is a conflict in meaning in some words. In English past tense (”he closed the task”) and past participle (”List of closed tasks”) is the same word. But in Greek they are two different words (past tense of close: έκλεισε, past participle of close: κλεισμένος/κλεισμένη/κλεισμένο/.../etc → (actually, past participle has 3 genders (male/female/neutral) x 2 grammatical numbers (singular/plural) x 4 grammatical cases (nominative/genitive/accusative/vocative)) = 24 combinations but we’ll deal with this later if needed).

So, strings that now are used both as past tense and past participle, or used both for singular and plural, must split and use a different string when past tense and a different string when past participle or singular/plural.

These strings are:

openedOpened It is used in Event log as past tense (meaning: “User X opened Y task” or “Y task was opened by X” → so in Greek must either use past tense or past participle as singular because it’s one task) and it is also used in Overview as past participle (meaning: “List of opened tasks” → so in Greek must use plural). On the other hand, the same message in task’s History uses var taskopened=”Task opened”. Maybe it would be best if var taskopened was used in Event log too instead of var opened. It would solve my problem.
closedClosed (same as above)
editedEdited (same as above)
2524EmailInformationLowSMTP Mailer doesn't accept custom portsUnconfirmed
05.11.201827.11.2018 Task Description

Did you installed an official release or did you used an inoffical docker?!
MySQL 8.0.12, 7.2.9 on debian buster

Steps done to create the problem:
Enter server:port at Mail-Settings

Expected behavior: would make use of the custom port

Experienced behavior:
TLS Errors

          if ($fs->prefs['email_tls']) {
              $swiftconn = Swift_SmtpTransport::newInstance($fs->prefs['smtp_server'], 587, 'tls');
          } else if ($fs->prefs['email_ssl']) {
              $swiftconn = Swift_SmtpTransport::newInstance($fs->prefs['smtp_server'], 465, 'ssl');
          } else {
              $swiftconn = Swift_SmtpTransport::newInstance($fs->prefs['smtp_server']);

Should be changed to

          $someTemporaryVariable = explode(':',$fs->prefs['smtp_server']);
          if ($fs->prefs['email_tls']) {
              $swiftconn = Swift_SmtpTransport::newInstance($someTemporaryVariable[0], $someTemporaryVariable[1] || 587, 'tls');
          } else if ($fs->prefs['email_ssl']) {
              $swiftconn = Swift_SmtpTransport::newInstance($someTemporaryVariable[0], $someTemporaryVariable[1] || 465, 'ssl');
          } else {
              $swiftconn = Swift_SmtpTransport::newInstance($someTemporaryVariable[0], $someTemporaryVariable[1] || 25);
1539Backend/CoreFeature RequestLowSitemap.xml GenerationUnconfirmed
2.12112.01.200911.03.2015 Task Description

I would like the feature to have a sitemap.xml file be generated, say every xx days, set in the configuration.

1518NotificationsFeature RequestLowShow last date/time when a reminder was sentUnconfirmed
15.11.200815.11.2008 Task Description

This information is already stored in the table "reminders" in field "last_sent". It might be helpful in some situations, if this date/time would be visible to the user on the reminder list, too.

2323User InterfaceFeature RequestMediumshow category tree in task listUnconfirmed
113.12.201614.12.2016 Task Description

we should show the category tree in the task list.
in the task we show the tree.

e.g. “Parent → Sub” instead of “Sub”

2333Backend/CoreInformationLowSet Default View on Login?Unconfirmed
326.01.201727.01.2017 Task Description

I can’t see an option to set the default view after login. It always defaults to tasklist view when it would be useful to show the overview by default on login.

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;
2224GreekBug ReportVery LowSemicolon is a bad separatorUnconfirmed
1124.10.201625.10.2016 Task Description

The symbol “;” in Greek is the question mark. So a list of semicolon-separated values looks like a series of questions in Greek. (looks like this: “cat? dog? rabbit?” ;-))

I suggest replacing semicolons with commas as list separators.

In email lists space is good choice too.

2087Backend/CoreInformationHighSee no Editor in Add New TaskUnconfirmed
1987APIFeature RequestMediumREST API to get metrics from flyspray projectsUnconfirmed
1608Installer and UpgraderBug ReportLowreserved characters cause database error after installa...Unconfirmed
2588Backend/CoreBug ReportLowps_files_cleanup_dir: opendir(/tmp/.priv) failed: Permi...Unconfirmed
2482Backend/CoreInformationLowProtect issues by defaultUnconfirmed
2534Backend/CoreFeature RequestLowPrivate projectsUnconfirmed
2142Backend/CoreBug ReportLowPost-authenticate redirect does not make use of baseurl...Unconfirmed
2309User InterfaceBug ReportLowPHP noticed displayed on default "All Projects" page.Unconfirmed
2330Backend/CoreBug ReportLowPHP Notice: Undefined offset: 0 in scripts/index.php o...Unconfirmed
2335Backend/CoreInformationLowPDF Attachment does NOT View/Open in New Window/TabUnconfirmed
1988Installer and UpgraderBug ReportMediumPassword Field for AdminUnconfirmed
2220Backend/CoreInformationLowOne status with different color in tasklistUnconfirmed
2065User InterfaceFeature RequestMediumOne click signup (with facebook, twitter , Google, yaho...Unconfirmed
2477Backend/CoreInformationLowold style MySQL extension is abandoned ..Unconfirmed
2549User InterfaceBug ReportLowOauth register template always shows "Username already ...Unconfirmed
2595NotificationsFeature RequestLowNotifications to message platforms Unconfirmed
2343EmailBug ReportMediumNotification mailUnconfirmed
2608EmailBug ReportMediumNotification email sent although not requestedUnconfirmed
2045User InterfaceFeature RequestLowneed add option for can set default Severity and Priori...Unconfirmed
2429Backend/CoreInformationLowMy tasks URLUnconfirmed
2198User InterfaceBug ReportLowMulti-Select from tasklist offers options to those who ...Unconfirmed
2481Backend/CoreInformationLowMove to MVCUnconfirmed
2305GreekFeature RequestVery LowMonth names not translatableUnconfirmed
2456User InterfaceBug ReportHighMissing GUI controlsUnconfirmed
2435Backend/CoreInformationLowMax attach a fileUnconfirmed
Showing tasks 1 - 50 of 319 Page 1 of 7

Available keyboard shortcuts


Task Details

Task Editing