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  desc Progress Assigned To Due In Version Opened Last Edited
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


2319Installer and UpgraderBug ReportHighUpdate failed with "invalid byte sequence for encoding ...Unconfirmed
223.11.201609.12.2016 Task Description

I’m trying to upgrade from to 1.0-rc4 but the Upgrader stops with this message:

Query {UPDATE "tasks" SET detailed_desc = ?WHERE task_id = ?} with params {,400} Failed! (ERROR: invalid byte sequence for encoding "UTF8": 0xc3 0x3c)

Ubuntu 14.04.5 LTS
PostgreSQL 9.3.10

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)

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.

2566Installer and UpgraderFeature RequestMediumsyntax_plugin after an upgrade from -> 1.0-rc9Unconfirmed
4130.08.201914.09.2019 Task Description

database: mysql - version: 5.5.62-0+deb8u1
php version: 5.6.40
Debian (probably a Buster one)

Steps done to create the problem: I used to run a version, and today, I decided to go for a 1.0-rc9 update.

Expected behavior: all works

Experienced behavior: most works, but not all

Details: after the update, I had weird display behaviour where the task weren’t displaying breaklines:

while the code was supposed to have breaklines:

Then, I’ve read: which leads me to:

Then, I’ve changed




in flyspray.conf.php, and now all is fine:

I’m already enjoying bold/italic/code/… very nice addition from, thank you!

That said, something which looks to be an issue from my (user) perspective is that when upgrading from → 1.0-rc9, I wasn’t asked for a “syntax plugin” thing and it looks that the only way to change it so far is to CLI-edit the flyspray.conf.php file.

I would strongly suggest to make this an option in the admin panel.

Thanks for flyspray that I’m using fo my librazik project.
All the best,

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
324.10.201819.03.2019 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
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

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?

1608Installer and UpgraderBug ReportLowreserved characters cause database error after installa...Unconfirmed
0% Task Description

the installer does not check for reserved characters when writing to flyspray.conf.php, causing parse_ini_file() to return an invalid database password.

2482Backend/CoreInformationLowProtect issues by defaultUnconfirmed
110.08.201810.08.2018 Task Description

I get that your project is public and you want people visiting this site to see what issues you’re working on, but most people probably don’t want their bugs list open to the public;

Can this be protected/private by default?

2534Backend/CoreFeature RequestLowPrivate projectsUnconfirmed
816.01.201918.01.2019 Task Description

I would like to restrict certain projects from view from normal users (Basic group.) I couldn’t find out a way to do it. I could restrict them from viewing tasks, which is good, but it would be nice to hide the project entirely from the Overview screen.

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
2343EmailBug ReportMediumNotification mailUnconfirmed
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
1236User InterfaceFeature RequestLowMark Issue As Verified or UnverifiableUnconfirmed
2551AuthenticationInformationLowLDAP/AD integrationUnconfirmed
2203Backend/CoreInformationLowlanguage files are in folder lang. But i can't change l...Unconfirmed
2047User InterfaceFeature RequestMediumInserting images/screenshots from bufferUnconfirmed
2484Backend/CoreInformationLowIncrease min. version of PHP requirementUnconfirmed
2200User InterfaceBug ReportMediumIncomplete list of timezones available in the user pref...Unconfirmed
1599User InterfaceFeature RequestLowImplement "Tasks not blocked by other tasks"Unconfirmed
2201APIBug ReportHighI got Fatal Error on the Github OAuthUnconfirmed
Showing tasks 201 - 250 of 301 Page 5 of 7<<First - 3 - 4 - 5 - 6 - 7 -

Available keyboard shortcuts


Task Details

Task Editing