CHANGELOG

Captivo Portal changelog — 2026 · Page 4 of 12

What changed in the guest WiFi portal, release by release, newest first.

1.112.1

Improvements

  • The "Code validity period" and "Maximum attempts" fields were removed from the portal settings. Email login has no code step: the guest receives Wi-Fi credentials by email and connects directly, so neither field ever did anything. Nothing is lost if you had set them, and behaviour does not change.

Fixes

  • The validity period shown after an SMS login could be read from the email setting instead. It now shows the period that belongs to SMS.

1.112.0

New

  • A separate retention period for the Log Server's search index: you can now say "raw logs 2 years, search 6 months". The search index is the table that takes the most disk, so shortening it frees real space; the legal record is untouched -- raw logs are kept in full for the whole period and keep being signed. Days older than the search period stop appearing in search but remain on the Raw Logs page. (The setting already existed, was saved, and did nothing.)
  • The "Multiple simultaneous sessions" option in platform settings now works. With it off, a user's new sign-in ends their sessions on other devices.

Fixes

  • On the Sessions page, search could not find 802.1X accounts or MAC-bypass devices, and those sessions could appear with a truncated name in the list. The tenant prefix is now separated from the username correctly for every login method.
  • The SMS length indicator counted characters that take two places in GSM-7 (€ { } [ ] ~ \ |) as one, so a template that looked like a single SMS could be sent — and billed — as two. The count is fixed.

1.111.4

Improvements

  • Captivo now tells your network device how often to report on active sessions (10 minutes by default). On devices that do not report in between, a session stayed open in the panel whenever the device could not send the closing record -- a reboot, a portal service restart, a guest walking out of range. Devices that do not support this setting simply ignore it and nothing changes.
  • The "NAS not responding" alert threshold is now calculated from that reporting frequency. It used to be a fixed period, so a single report lost in transit could raise a false alert for a perfectly healthy device.

Fixes

  • In the on-premise panel the "Check for updates" button did not work and reported that the server could not reach captivo.io instead. The button had never worked, and the message appeared on installations with no connectivity problem at all. It now performs a real check and skips the daily cache. The failure messages are separated too: a server error, a connectivity problem and everything else now say so individually.

1.111.3

Improvements

  • The log pages now open at the same speed no matter how much log data has accumulated. Recognition ratios and the unrecognised-line breakdown cover the last 7 days -- search, signing and legal retention still cover every day as before. In the raw log list a total above 10,000 is shown as "10,000+"; narrow the date range when you need the exact figure.

1.111.2

Improvements

  • Scheduled jobs are now shown as a grid of cards instead of a list of rows, so a job that needs attention stands out at a glance.

Fixes

  • With the panel language set to English, most action descriptions on the Audit Logs page were still shown in Turkish. Every description -- MAC whitelist, 802.1X and VPN users, tenant and sponsor operations, two-step verification, scheduled reports, licence and webhook changes -- now follows the language you choose. The team member and MFA entries that appeared in English on the Turkish panel were corrected as well.
  • In a few places a key name was shown instead of the translated text: the logs button on the Webhooks page, the PMS check-out labels, voucher duration figures ("2h 30m"), team and portal error messages, and the feedback dialog title. The whole application was scanned; all eleven missing texts are now present in both languages.

1.111.1

Fixes

  • On installations updated to 1.111.0 the panel did not open and showed "An error occurred". Updating to this release is all that is needed.
  • Clicking the NAS warning notification opened a blank page; it now goes to the dashboard.
  • The Log Sources page did not open on installations with a large number of raw logs. The unrecognised ratio is now recalculated once a minute; the page's live information (source list, last seen) is immediate as before.

1.111.0

New

  • The password policy now applies to every password change. Length and character rules used to be enforced only during sign-up, and were skipped when an administrator set a user's password or when a team invitation was accepted.
  • "Sign out everywhere" was added (Settings → Security). It ends your account's sessions on every device at once, and now happens automatically when you change your password.
  • The version card gained a manual update-check button, so you no longer have to wait for the daily check after hearing a release is out.

Improvements

  • The default language for new tenants can now be set from platform settings. (Platform administration)
  • The search-engine indexing setting now also reaches robots.txt; it used to apply only to the page tag while the file kept inviting crawlers. (Platform administration)
  • The e-mail verification requirement setting is now actually enforced. (Platform administration)
  • A dark-background logo, once uploaded, is used in the site header and footer. (Platform administration)
  • SMTP settings now warn when the chosen TLS/SSL value is overridden by the port. (Platform administration)

Fixes

  • The name and description of built-in profiles stayed Turkish on the English panel when opening a profile's detail.
  • The "Türkçe" label in the language selector did not use proper Turkish characters.

1.110.0

New

  • The SMS and e-mail a guest receives are now written in the language the portal is showing at that moment. A guest who picks English on the portal gets their details in English; the message language used to be decided by the panel's language.
  • Each message on the Templates page can now carry separate text per language. Write one template and it is used for every language — exactly today's behaviour; add an English variant and guests reading in English get that one.
  • English text was added for the WiFi details SMS, the WiFi details e-mail and the sponsor approval e-mail. None of the three had an English version before.

Improvements

  • The sponsor approval e-mail now really honours the tenant's language. Only the subject prefix and a single link label used to be translated while the body stayed Turkish regardless.
  • When the portal's language does not reach the server (a portal template that has not been updated yet), the message is sent in the tenant's language — behaviour stays as it is today.
  • When an unsupported language arrives (a German phone, for example), the message is sent in English.
  • The VPN verification and enrolment SMS now use the tenant's language too; they had English text that no path could reach.

Fixes

  • The "SMS Template" heading in template settings did not use proper Turkish characters.

1.109.0

New

  • The WiFi details e-mail guests receive can now be edited. Write your own wording on the Templates page and use your own voice; leave it alone and the built-in template keeps being used exactly as before.
  • Voucher code SMS and local-user credentials SMS became editable too.
  • The preview on the Templates page is now the message itself. It used to be a separate rendering drawn on screen, which could differ from the real e-mail; both now come from one source and cannot diverge. "Send test" sends that same message.
  • MikroTik DHCP and hotspot records are now read by the Log Server: device-to-IP bindings, hotspot logins and logouts, and failed login attempts are visible.

Improvements

  • The variable list in the template editor now shows the variables each template really uses. There used to be one shared list, so a variable that did nothing on a given template was still suggested — and reached the recipient as literal text if used.
  • The unused "E-mail Verification" tab was removed. The template was left inactive when the e-mail login flow changed to send credentials directly; text you had saved was not deleted.
  • A test SMS is now the same length as the real message. A prefix used to be added, so a template near the segment boundary could test as two parts and send as one.
  • E-mail clients that prefer plain text now receive actual plain text; raw HTML tags used to show through.

Fixes

  • Fields such as the guest name could pull in another variable's value.
  • Closed a case where the password validity period and the session length could be confused in the WiFi details e-mail.
  • For tenants using their own template, the approval button could disappear from the sponsor e-mail in some cases.
  • The SMS sent when a guest is created from the panel stated the RADIUS default session length rather than the profile's. A guest could be told 60 minutes and granted 24 hours.
  • On on-premise installations the address variable in the SMS template always printed app.captivo.io; it now shows your own server address.
  • When the server address environment variable was unset, the link in the sponsor approval e-mail pointed at localhost and did not work.
  • The built-in sponsor approval e-mail is now signed with the tenant's name and spells Turkish characters correctly.

1.108.0

New

  • Base Defaults: Settings → RADIUS now also carries base values for speed, data quota, concurrent devices and idle timeout. An authentication method with no profile assigned used to get none of these limits. Existing installations are unchanged: an empty field means "unlimited", so an update never starts throttling anyone.

Improvements

  • The unrecognised-lines breakdown in the Log Server now names devices correctly. On installations sending MikroTik logs, one device's records were split across four entries, three of them named after words taken from inside the message.
  • The firewall's own maintenance records are now labelled "known noise" and left out of the unrecognised ratio. On one installation they were 82% of the unrecognised lines, so the ratio measured how often maintenance jobs ran rather than the state of the device. The records stay in the list, because they still take up space.
  • pfSense captive portal login/logout records are now read by the Log Server: username, MAC and IP appear together.
  • Devices on the MAC whitelist now also get their profile's idle timeout and data quota; previously only speed and session length were applied.
  • The profiles page states which authentication methods it governs, and that 802.1X is not managed through guest profiles.
  • When a profile is deleted, voucher batches printed with it keep enforcing the limits they were printed with — the screen now says so.
  • Deactivating a profile now propagates to the users and devices linked to it; reactivating restores them.
  • The 802.1X / MAC login records page now states that attempts from the captive portal appear there too when MAC authentication is enabled on it.
  • The "E-mail Verification" tab on the templates page now says it is no longer in use: the template was left inactive when the e-mail login flow changed to send credentials directly, and the page did not mention it.

Fixes

  • A guest approved by a sponsor was disconnected after 15 minutes, whatever session length the profile specified.
  • Network activity on the guest detail page showed IP addresses masked even when "Open Data Display" was enabled.
  • "Terminate" on active sessions did not say when it could not actually drop the device. It now states when the device will leave the network: when its idle timeout expires, when its session length runs out, or when it rejoins the network.
  • The profile's data quota could not be applied to local users.
  • The same profile produced a different idle timeout for a local user than for a portal guest.
  • A local user on a deactivated profile could not be edited from the panel.
  • After a profile was edited, the limits shown on voucher batches kept their old values.
  • 802.1X and MAC login records were not covered by any data retention cleanup; because they contain a MAC address they are now deleted after 365 days.
  • Security: the name a guest typed on the portal was placed into the outgoing e-mail as-is, which allowed outside content to be added to a message leaving from the tenant's own e-mail address. Closed.
  • On the templates page, saving one tab erased the other tab's template.
  • The sensitive-field search record in the audit log appeared in Turkish on the English panel.

1.107.0

New

  • Wired users connecting over 802.1X now appear in the panel. Those sessions were not bound to any tenant, so they never showed up in the session list, on the dashboard or in reports; they are now listed with their own identity and method. (On-premise)

Improvements

  • On-premise upgrades no longer keep the product offline. The step that re-queued old log records has been taken out of the upgrade; because it grew with the number of records, installations with a large archive could spend tens of minutes upgrading with the panel unreachable throughout. The same work is now done in the background while the product is up. Data maintenance tasks were moved after the upgrade in the same way.
  • Expired MAC whitelist entries are now refused by RADIUS itself. Previously the hourly cleanup job was the only thing that removed such a device from the network; there are now two layers.
  • The pfSense guide gained a section on multiple guest VLANs: that the firewall rule and the walled garden are separate layers, that adding a VLAN to the zone does not grant it access, and that an interface group lets you write the rule once.
  • Two new jobs appear on the scheduled-jobs status card (log re-processing and post-upgrade data maintenance), so you can see when they ran and how they finished. (On-premise)

Fixes

  • The conversion funnel on the Analytics page did not count the same people at every stage. Users connecting over MAC bypass, directory and 802.1X never open the portal, yet they were added to the final stage, which reported a conversion rate higher than reality.
  • Some export and download descriptions in the audit log stayed in Turkish in the English panel; the signed 5651 log archive download record was one of them.
  • The version number in the installation guide heading did not show the current release.

1.106.0

New

  • Every lookup on the 5651 identity resolution screen is now written to the audit log: who asked, when, and for which IP/MAC and moment. The result of the lookup (the person's details) is never written; the record holds only the question. If the record cannot be written, the lookup is not answered.

Improvements

  • The 5651 resolution screen now identifies local user accounts instead of showing "unknown", and the account that produced the session is shown on the card as well.
  • The audit log list gained a filter for identity resolution lookups.

Fixes

  • The IP and MAC fields in an identity lookup were not validated, so an invalid value could run a lookup and make the audit record's description misleading.
  • Adding a time-zone suffix to the queried moment could make the recorded moment differ from the time shown on screen.

1.105.0

Improvements

  • The Log Server search page now follows the "Open Data Display" preference in Privacy settings. With it off, source IP and MAC arrive masked and each "Show" click is written to the audit log; with it on they are shown directly, as on every other page.
  • Every action and record type in the audit log now appears in your own language. Most of them previously showed raw technical names such as LOG_SENSITIVE_SEARCH.
  • In the English interface the built-in profiles' descriptions are now shown in English, as their names already were.
  • CSV template and export files are named according to the interface language; using English no longer downloads a Turkish-named file.
  • Row buttons were removed from the Recent Logins card: blocking and disconnecting happen on the guest and session pages, where the decision has its context. The online/offline badges now line up on every row.
  • The on-premise installation guide and every document in the delivery package are in English. The pfSense and MikroTik setup guides and the offline bundle script now ship inside the package.

Fixes

  • Deleting a profile left its limits in force on the hotel (PMS) configuration, and guests silently lost their limits. The link is now cleared and the panel reports it.
  • A deleted profile still appeared by name on voucher batches and local users. It is now marked "Profile deleted".
  • The local-user export wrote a deleted profile's name, and re-importing that file failed the row.
  • Because profile names are translated in the English interface, typing the displayed name ("Staff") in a CSV import failed the row. Both spellings are now accepted.
  • The delete-profile confirmation could show a different name than the one on the card.
  • Local-user account names appeared unmasked in the session list and in exports.

1.104.1

Fixes

  • On on-premise installations the scheduled jobs were marked "Failed" and none of them ran, because the jobs could not authenticate themselves. Fixed — Settings → System now shows them running normally.

1.104.0

New

  • On-premise installations now run their scheduled jobs automatically. Retention cleanup, session maintenance, MAC whitelist expiry, scheduled reports and notifications no longer need any separate setup.
  • Settings → System now shows scheduled job status: each job's last run, its result and its next expected run. A job that has not run for longer than expected is flagged.
  • The local-user import now has a profile column, so you can define users together with their profiles in bulk.
  • Users signing in through a directory (AD/LDAP) now appear with their own authentication method in the session list, the dashboard cards and the reports.
  • pfSense DHCP records are now parsed. The device and IP pages in the Log Server show DHCP lease history, and traffic is attributed to a device by resolving which IP it held and when. pfSense traffic records carry no MAC address, so this was never visible before.

Improvements

  • Profile updates now reach the local users and whitelisted devices already using that profile, not only new assignments. They apply the moment you save; sessions that are online at that point continue on their current settings, and the new values take effect at their next login.
  • A CSV import now tells you about columns it does not recognise instead of ignoring them silently.
  • Directory (AD/LDAP) account names are masked in the session list; revealing one takes a click and that click is written to the audit log.
  • The block button was removed from the Recent Logins card — blocking now happens from the guest and session pages. This also stopped the online/offline badges on that card shifting from row to row.

Fixes

  • Deleting a profile left its limits in force on users and devices. They are now removed.
  • The "Local user" default on the profiles page was defined but never applied.
  • Hotel/PMS sessions appeared in the mobile app with no authentication method and no room information.
  • Editing or deleting a profile from the mobile app did not produce the same result as the panel.
  • ICMP lines in pfSense firewall records produced invented port numbers, polluting charts and search results.
  • The release notes described the Log Server search language's operators incorrectly; they are AND / OR / NOT.

1.103.2

Fixes

  • The Log Server search page looked empty when opened without a query. It now lists the last 24 hours and narrows the results as you type a query.

1.103.1

Fixes

  • On on-premise installations, the 1.103.0 upgrade stopped with a database error on systems whose log table had passed a certain size. It did not appear on small databases, which is why it was missed in the first release; fixed.

1.103.0

New

  • Multi-condition search in the Log Server. Combine fields with AND / OR / NOT, group them with parentheses, and use ranges ([1..1024]), lists, prefixes (mail*), contains (*google*) and regular expressions. Network-block search is built in: just type 192.168.1.0/24.
  • Name and save the searches you run often. Saved queries are visible to everyone on the team and run against the current day's data when you click them. If a field is removed, the query is marked invalid and the reason is shown.
  • Download a search's report as CSV, Excel or PDF. Anything masked on screen is masked in the file.
  • A chart panel above the results: distribution over time, plus top source IPs, destination ports and source devices. Click a bar or a value to narrow the search to it.
  • Free-text search in quotes. It also searches the raw log lines, so you can find things in lines the system does not yet recognise.
  • An event-type column in the results table (traffic / DHCP / DNS / authentication), so mixed results are readable.

Improvements

  • Source IP and MAC are now masked in search results; revealing one takes a click and that click is written to the audit log — the same rule the other pages follow.
  • Searches that use guest information now appear in the audit log under their own type instead of disappearing into the general pile.
  • A typo in a query now highlights where the problem is and suggests a correction (type src.ip and it asks whether you meant source.ip).

Fixes

  • Searching by a guest's phone number returned nothing at all on on-premise installations. That is the most basic question a 5651 tool answers; it now finds the right guest.
  • Searches using NOT were dropping records whose matching field was empty. They now come back — result counts in your saved queries may increase because of this.
  • Device-name search mishandled Turkish characters: typing IST did not find ıstanbul.
  • When a raw-line search returned nothing, the downloaded report named the wrong place as the one that was searched.
  • The old export address was removed; exports are now taken from the download button on the search page.

1.102.0

New

  • The Log Server gained IP and device pages. Clicking an address or a device brings up, on one screen, which guest held that address and when, what traffic it produced, and how that traffic is spread over time. IP, MAC and guest values in the tables are clickable, so an investigation continues without filling in filter boxes by hand.
  • The guest detail page gained a "Network Activity" section, so a guest's traffic sits alongside their sessions on the same page.
  • Entity pages carry a time histogram and a top-N breakdown by a dimension you choose — action, protocol, destination port and so on.

Improvements

  • Log Search displayed the guest phone number and MAC address unmasked; it now follows the same rule as the other pages, and clicking "Reveal" leaves an audit record.
  • The CSV export from Log Search applies the same rule. A number shown masked on screen previously arrived unmasked in the downloaded file.
  • The time range on entity pages defaults to the last 24 hours and is capped at 7 days. An IP address belongs to different guests over time, so a wide range can name the wrong person; that is what the cap is for.

Fixes

  • Network activity on the guest detail page could also show traffic belonging to ANOTHER guest who took over the same IP address after the first one released it. Each address is now matched only against the period the guest actually held it.

1.101.1

Fixes

  • The "Parsed log retention" field in Log Server settings was saved but had no effect, and the text beneath it claimed the period was applied. The field now states plainly that it is not in effect: parsed events are currently kept for the same period as raw logs and deleted along with them, so the raw-log retention is the only value that counts. A separate retention period will come in a future release.

1.101.0

New

  • The Log Server gained an "Unrecognised Lines" page. It shows which programs the records no parser understood are coming from, with counts, shares and a sample line. You can now see from the panel whether your firewall is sending log categories you do not need, and switch them off in the device's syslog settings to cut both the noise and the disk use.

Improvements

  • The "unrecognised" ratio on the Log Sources page now also shows how many lines it was calculated from, and says "too little data for a ratio" instead of a percentage when there is not enough. A ratio from a few dozen lines used to look identical to one from hundreds of thousands, so a device whose traffic had stopped could read as faulty. The ratio also links through to the Unrecognised Lines page.
  • The syslog steps in the on-premise setup guide were corrected: pfSense now names the three categories needed (Firewall, DHCP, Captive Portal) instead of "Everything", the missing DHCP entry was added for MikroTik, and the panel menu names were brought in line with the interface.

1.100.7

Fixes

  • With directory (AD/LDAP) login switched on, signing in with an SMS password, a voucher or a local user account failed with "Incorrect username or password". The credentials were only ever looked up on the directory server and rejected when not found there. They are now checked against your own users first and only then against the directory, so SMS, voucher, local user and directory accounts all work at the same time. This is a server-side fix; there is no need to download the portal template again.

1.100.6

Fixes

  • The captivo.io sitemap reported "changed just now" for every page after each release, including pages untouched for months. Search engines disregard that information when it is not accurate. It is now given only where it is genuinely known — on blog posts, with their own publication dates. All 60 addresses remain listed in the sitemap.

1.100.5

Improvements

  • On room-number login with "National ID" selected, the field no longer accepts anything but digits: a letter typed by mistake disappears at once, and spaces or letters in pasted text are cleaned up. Previously letters could be typed and the guest only found out on pressing Connect, through the browser's own warning. Digits typed on other keyboard layouts are recognised correctly too. With Passport selected, letters are still accepted.

1.100.4

New

  • On room-number login where an ID number is required, the guest now chooses between "National ID" and "Passport". Choosing the national ID opens the numeric keypad on a phone and limits the field to 11 digits; choosing passport brings the normal keyboard, capitalises letters automatically and leaves room for longer numbers. A single box previously served both, so the most common case — an 11-digit national ID — had to be typed on a letter keyboard.

Fixes

  • In the tabbed portal layout, setting "Section shown on open" to Hotel/Room No left the guest looking at that tab selected while the username and password fields sat underneath it; clicking the already-selected tab brought up the right fields. The setting was only half applied, and is now fixed. The accordion layout was not affected. For the fix to take effect, the portal template must be downloaded again and uploaded to the device.

Captivo Portal changelog