-
Notifications
You must be signed in to change notification settings - Fork 15
Bugs Resolved
Bugs that have been reported, understood and fixed β each one written up so you can see what was actually wrong rather than just that something changed.
Every write-up covers the same ground: what you saw, what was broken underneath, how it was fixed, which files changed, and how the fix was proved. They are written to be read by somebody who has hit the same symptom, so the plain-English half comes first and the code comes after.
Found something? Please open an issue. A report with the steps to reproduce it is worth a great deal β several of the entries below were diagnosed correctly by the person who reported them.
| Reported | What was wrong | Module(s) | Issue | Resolution |
|---|---|---|---|---|
| Aug 2026 | A brand-new installation could not get past its own first screen: FreeITSM insists the seeded password is replaced before anything else, and on that page the button did nothing while the console filled with 404. The page asked for its endpoint without naming the application root, so the address only resolved at one of the two addresses the page answers on β and the fix to #68 had just changed the application to send people to the other one. Four pages had it, including the one-time-code step of sign-in, which meant nobody with two-factor authentication could sign in at all
|
System Β· Authentication | #74 | The default password could not be changed |
| Aug 2026 | A ticket created from the mail inbox had no status at all β blank in the list, empty in the dropdown β on an installation that had renamed Open. Seven creation paths asked for the status by name, and the reading pane went on displaying Open anyway, so the header and the list disagreed and neither looked wrong | Tickets Β· Portal Β· Web chat Β· Workflows | #79 | A new ticket arrived with no status |
| Aug 2026 | Tickets collected from email did not record that they came from email β the Source field was blank on every one, so no report could tell them from any other kind | Tickets Β· Mailboxes | #79 | A ticket from email did not say it came from email |
| Aug 2026 | Watchtower counted by typed-in words, and three of them were already wrong in English on a stock installation β the open-ticket headline read 88 against a true 100, Morning Checks reported "all checks completed and passing" on a morning when every check was red, and completed changes were counted as upcoming work | Watchtower Β· Browser extension | found while fixing #79 | Never identify a lookup row by its name |
| Aug 2026 | A Microsoft 365 mailbox could only ever collect mail from Inbox β any folder of your own gave 400 ErrorInvalidIdMalformed and collected nothing, while the Verify button beside the field below happily confirmed the very same folder |
Tickets Β· Mailboxes | #77 | Mail could only ever be collected from Inbox |
| Aug 2026 | The notification bell showed a correct red count and opened to an empty panel on the home page, while working everywhere else β it was never sending the request, and the error handler sat one line below the failure so nothing was reported | Notifications Β· System Β· Problem Management | #78 | The notification bell opened to nothing |
| Aug 2026 | Renaming the Operational impact level split the status board in two β services in an incident showed the new name, healthy ones kept the old one and lost their badge colour | Service Status Β· Self-Service Portal Β· Watchtower Β· REST API | #70 | Renaming an impact level |
| Aug 2026 |
login.php was missing β a rewrite rule had been hiding around ninety wrong paths, so installations without one (nginx, or Apache with AllowOverride None) could not sign in |
Core Β· Installation | #68 | Root folder tidy Β· Running on nginx |
| Aug 2026 | Mailboxes set to app-only authentication could receive email but never send any β every outgoing route addressed the message to "the signed-in user's mailbox", which does not exist in app-only mode | Tickets Β· Workflows Β· Self-Service Portal | #67 | Why app-only mailboxes could not send email |
These were reported and fixed before this page existed, and deserve the same treatment. Listed here so the gap is visible rather than quietly forgotten.
| What was wrong | Issue |
|---|---|
API keys generated in the interface were not stored in the apikeys table |
#65 |
| Priorities were missing on ticket creation | #40 |
This page is for things that were broken, not for things that were missing. Suggestions, feature requests and new modules are tracked separately:
- Features and improvements as they ship β freeitsm.co.uk/updates.php
- Ideas being considered β Blue sky thinking
- Everything else β the GitHub issues list
A few recurring themes are worth knowing about in their own right, because they are the sort of thing that bites more than once:
- Workflow & webhook pitfalls β the failures that look like nothing happening
- Database integrity β foreign keys and constraints, and what happens without them
- Mailbox authentication β the troubleshooting table for email that will not send or collect
FreeITSM β an open-source IT Service Management platform Β· github.com/edmozley/freeitsm Β· MIT licence
- Installation
- β° Scheduled tasks (cron jobs)
- Architecture
- AI Providers
- Internationalisation (i18n)
- Timezones & Time Handling
- Theming & Dark Mode
- β¨οΈ Command palette (βK)
- π Searching inside tickets
- π Attached documents
- MobileβFriendly
-
Security
- Layer 1 β which modules you can enter
- β³ π§© Module Access Control
- β³ π οΈ Module Access β Developer Guide
- Layer 2 β what you can administer
- β³ π Roles & Permissions
- β³ π οΈ Roles β Developer Guide
- β³ π€ Why capabilities are constants
- Layer 3 β the System module
- β³ π Admin Access Control
- Hardening
- β³ π Security review response 2026-08
- β³ π‘οΈ Security hardening 2026-08
- β³ π οΈ Security hardening 2026-08 β Developer Guide
- β³ π‘οΈ Round three β plain English
- β³ π οΈ Round three β Developer Guide
- Single Sign-On (SSO)
- ποΈ LDAP & Active Directory
- Browser Extension
- API Reference
-
π REST API β how it works
- β³ π« REST API: Tickets
- β³ π» REST API: Assets
- β³ π΄ REST API: Problems
- β³ π REST API: Changes
- β³ π REST API: Knowledge
- β³ β REST API: Tasks
- β³ ποΈ REST API: CMDB
- β³ π REST API: Contracts
- β³ ποΈ REST API: Calendar
- β³ πΏ REST API: Software
- β³ π¦ REST API: Service Status
- β³ βοΈ REST API: Morning Checks
- β³ π REST API: Forms
- β³ βοΈ REST API: Workflow
- β³ πΊοΈ REST API: Network Mapper
- β³ π§ Using the API docs page
- β³ π OpenAPI specification
- β³ β OpenAPI: kept correct
- β³ π οΈ Maintaining the catalogue
- Watchtower
-
Tickets
- β³ Mailbox Authentication
- β³ π€ Email send log
- β³ Basic IMAP mailboxes
- β³ Email rendering & images
- β³ SLA Management
- β³ WhatsApp channel
- β³ π¬ Web chat channel
- β³ π£ Slack channel
- β³ π Linking tickets
- β³ ποΈ Canned responses
- β³ βοΈ Limiting replies to particular senders
- β³ βοΈ Email signatures
- β³ π The public web address
- β³ π Raising a ticket for someone else
- β³ π Merging tickets
- β³ β Splitting tickets
- β³ β Selecting several tickets
- β³ π οΈ Snoozing tickets β Developer Guide
- β³ π₯ Collision detection
- β³ β±οΈ Time tracking
- Problem Management
- Tasks
- Assets
- Knowledge
- Change Management
- Calendar
- Morning Checks
- Reporting
- Software
- Forms
- Contracts
- Service Status
- π Notifications
- π¨ War Room
- Self-Service Portal
- LMS
- Process Mapper
- CMDB
- Network Mapper
- Workflows
- Issue trackers (Jira, Azure DevOps)
- System
-
Overview
- β³ π Progress tracker
- β³ Concepts & vocabulary
- β³ Email routing & mailboxes
- β³ Settings: global vs per-company
- β³ Users & self-service
- β³ Staff cross-company access
- β³ Worked examples
- β³ Pitfalls & gotchas
- β³ Scope: what it's for
- β³ π οΈ Developer Guide (make a module multi-company)
- β³ ποΈ Case study: CMDB (a linked graph)
- β³ π§ͺ Test harness (prove it's isolated)