Skip to content

Changelog

User-visible changes to Syndik8. One entry per change. Each entry links to the affected documentation page.

Format: [type] [area] what changed — link to the relevant docs page.

Types: feat, fix, docs, perf, chore.

  • [fix] [payments] A Direct Debit that your bank returned now says Not collected only when that is what happened. A card payment your bank refused used to carry the same sentence, word for word, so the two were impossible to tell apart on your payment history; a refused card now reads Not completed, which is what the page has always defined it as. Payment history →
  • [fix] [payments] A dispute you lose at your bank now releases the charges it was holding, so they can be paid again. Some disputes are reported as already decided the moment they are raised, and those outcomes were being missed entirely: the charges stayed held under a bank that had already decided, with no way out but an admin recording the payment by hand. Reversals →
  • [feat] [payments] When a payment is undone, Syndik8’s platform fee on it comes back too — in proportion on a refund, and in full on a dispute that goes against the syndicate. Previously a lost dispute left the syndicate paying a fee on money it never kept. How payments work →
  • [fix] [payments] Collecting a failed Direct Debit again now actually reaches the bank. A second attempt on the same charges within a day was being answered with the first attempt’s failure, which left the collection stuck reporting itself as on its way for ever and quietly stopped every later Direct Debit for that member. Direct Debit →
  • [fix] [finance] Cancelling a cash call now says which of the two things is stopping it. A call held only by a payment still in progress was told it had “already received payment”, sending admins looking for a payment that did not exist. Cash calls →
  • [fix] [finance] The refusal shown when a cash call is issued without a due date no longer says the date can never be changed. It can be corrected afterwards, and two pages describe how; only removing it is impossible. Cash calls →
  • [fix] [bookings] The admin’s list of bookings waiting to be finalised now includes bookings that ended earlier the same day. They only appeared the following day, so finalising a batch was impossible until then. Unfinalised bookings →
  • [fix] [payments] A member’s Direct Debit status on their member page now refreshes when you open it and when you return to the app, rather than showing what it was when the screen was first loaded. Direct Debit →
  • [fix] [syndicates] Following a link to an admin-only screen as an ordinary member now shows the admins-only page, the same as the rest of them. Several — the payment account, an aircraft’s details and billing settings, and the forms that invite a member, add an aircraft, issue a cash call or open a vote — opened as working forms instead, so you learnt they were not for you only on pressing Save; nothing could be changed either way, because the server refused every one of those saves. Your own Direct Debit is unaffected: it was never one of these screens, and is still yours to set up and cancel. Payment account and Billing screens →
  • [change] [platforms] Panels and status icons that were painted from a fixed palette now follow your theme, so an amber advisory no longer appears as a near-white block inside a dark dialog, and a tick that was almost invisible against its background in dark mode can be seen. Every colour that changed was measured against the surface behind it.

  • [change] [platforms] The connection indicator no longer relies on colour alone. The Profile icon now carries its state in words — Connected, Reconnecting or Offline — so a screen reader announces it and a hover shows it, and the unread badge is announced as a count of notifications rather than a bare number. Offline capabilities →

  • [change] [finance] On your balance, a cash-call row now carries a chevron to show it opens, and the sentence explaining that a charge is already scheduled for collection no longer wears the link colour. Previously the one row that led somewhere looked exactly like the fifty that did not, and a sentence that could not be tapped looked as though it could. Member balance →

  • [change] [account] The two Save buttons on your profile now read Save name and Save display name. They can be live at the same time, and both reading Save meant tapping one silently left the other unsaved.

  • [change] [syndicates] The invitation you share now always names the syndicate. If its name has not loaded yet it says so and sends nothing, instead of inviting someone to join “a syndicate”. Invite members →

  • [change] [bookings] A booking that cannot be found now says so, instead of showing the generic failure. The explanation existed in the code but never reached the screen.

  • [change] [finance] The correction screen’s amount field now shows your syndicate’s own currency symbol rather than a pound sign.

  • [change] [platforms] Picking a booking file that cannot be opened now says so and tells you to pick it again or export a fresh copy, instead of showing the generic failure and pointing you at your internet connection. It is a problem with the file on your device, not the network. Import bookings from a CSV →

  • [change] [documents] Withdrawing your medical consent needs a connection, and if you are offline the screen now says your consent was not withdrawn and nothing was deleted, rather than telling you to try again. Delete the file, keep the date is a local change and still works offline. Withdraw your medical consent →

  • [fix] [documents] Withdrawing your medical consent now withdraws the consent record first and deletes the certificate second, so a failure happens before anything has been removed: the screen says so, your certificate is untouched, and you can try again. Previously the certificate went first, so a failure left it deleted, your consent record still standing, and no way anywhere in the app to reach that step again. Withdraw your medical consent →

  • [change] [documents] A medical consent that cannot be saved now tells you to check your connection only when you are actually offline. The check previously keyed off the kind of error, which the server returns identically whether you are offline or it refused the write, so it told people on a good connection to check their signal.

  • [change] [syndicates] Prompting a member for a Direct Debit no longer puts the server’s own error text in the message when it fails, and neither does saving a member’s details. One of those was showing raw database text, including column and constraint names.

  • [change] [platforms] When something fails for a reason the app cannot name, it now says Something is not working and tells you to check your connection and try again, rather than Error over Something went wrong. This is the message behind most failure screens in the app, so it is the one you are most likely to meet.

  • [change] [maintenance] Failure messages across squawks and maintenance no longer repeat themselves. Confirming, deferring, resolving, dismissing, reporting, logging a completion, deleting an item, setting a template up and recording an opening reading each now say what did not happen, whether anything was saved, and that trying again is safe. They used to append an untranslated internal sentence, so the message read Failed to resolve: Failed to resolve squawk and suggested nothing. Resolve a squawk →

  • [change] [governance] A vote that fails to record now says plainly that your ballot has not been cast, instead of appending the server’s own words to the message. It no longer suggests trying again, because the two things that usually stop a vote being recorded — the vote having closed, or your not holding equity — are settled answers that a second attempt cannot change.

  • [change] [platforms] Screens that could only fail with a developer error message on the page now show a proper error state with a Retry that actually reloads: the member detail screen, My syndicates, and the aircraft-type list when adding an aircraft. The rate table and the maintenance summary card gained the same Retry their siblings already had.

  • [change] [syndicates] Opening a member who is no longer in the syndicate now says so and offers a way back, instead of showing the single word Member centred under a heading also reading Member, which gave no clue whether a removal had worked, failed, or broken.

  • [change] [notifications] The unsubscribe page you reach from an email footer now offers No, leave my settings unchanged as well as the action itself, so a mis-tapped footer link is no longer a one-way trip. Its wording is also translatable for the first time. Unsubscribe from a notification type →

  • [change] [documents] If recording your medical consent fails, the page now says plainly that nothing was saved and to try again, and says so differently when you are offline. It used to show the raw internal error after the sentence.

  • [change] [bookings] On your own booking, Cancel is now labelled Cancel Booking and carries the lighter outlined weight beside Edit. Previously the two sat side by side as identical heavy buttons with the cancelling one painted red, making the action you cannot undo the loudest thing on the screen, and the bare word “Cancel” beside the back arrow read as ambiguously “leave this screen”. Cancel a booking →

  • [change] [notifications] Swiping a notification all the way to Delete now asks you to confirm first. Delete sits past mute-push and mute-email on the same swipe, so a swipe aimed at muting that carried too far used to delete permanently with no undo. A delete that fails now says so instead of appearing to have worked. Delivery channels →

  • [change] [account] The button that calls off a pending account deletion is now labelled Keep my account and is raised above the See what’s left link beside it. It read as Cancel deletion before, which inside a banner some people took to mean “dismiss this banner”, and it carried no more weight than the link next to it. Delete your account →

  • [change] [assets] The archive confirmation now offers Archive the aircraft against Keep it active, and the archiving answer is painted in the warning colour. Both answers previously read Archive and Cancel, with the confirming one styled as the safe choice directly under a red warning about upcoming bookings. Archive an asset →

  • [change] [maintenance] An open grounding squawk now shows Schedule Repair as the single expected next step, with Defer and Resolve in a lighter weight beside it. All three used to be equally loud, so deferring a limit on a grounded aircraft looked like as ordinary a choice as returning it to service. Schedule a repair for a squawk →

  • [change] [payments] On a reconciliation row, the confirm button now names the member it would match, rather than reading just Confirm on every row down the list.

  • [change] [payments] The screen shown after you back out of a payment no longer displays a large red error mark. Nothing went wrong — you chose to stop — and the page already says no charges have been made. Try Again, the only action on the page, now carries full weight rather than sitting outlined as the alternative to something not on screen.

  • [change] [governance] Closing a vote is no longer painted in the destruction colour. Closing records the result; only cancelling throws it away, and that one keeps the warning styling. The cancel confirmation now offers Keep the vote open against Cancel the vote.

  • [change] [bookings] The unfinished-flight-log prompt now offers Resume the log as its raised answer, with Discard the log beside it in the warning colour. Both used to read as bare single words at the same weight, on a prompt that cannot be dismissed, so the reflexive tap could throw away a flight already captured. The discard confirmation inside the log itself now reads Keep the log against Discard the log.

  • [change] [documents] Deleting a document now offers Keep this document against Delete the document, and the deleting answer is painted in the warning colour. It previously read Cancel against a Delete styled in the ordinary primary blue, so the answer that removes the file looked like the safe one. Document viewer →

  • [change] [bookings] The button that backs out of the maintenance-overlap warning when creating a booking now reads Go Back, because it returns you to the booking form with everything you typed still in it. It read Cancel before, one step away from the form’s own Cancel, which really does discard the booking. Schedule maintenance over member bookings →

  • [change] [payments] On the screen you land on after connecting a payment account, Back to Payments now carries full weight once the account is live. It was outlined, which read as the alternative to a Refresh status button that is not on screen in that state. Set up a payment account →

  • [change] [payments] Cancelling a Direct Debit now offers Keep my Direct Debit against Cancel my Direct Debit. The dialog previously put Cancel beside Yes, cancel, where both answers contained the word and neither said what it would do.

  • [change] [payments] A charge on a payment your bank has taken back and is still looking into now says so on its own row. In place of its Pay button it carries an Awaiting your bank pill and a sentence saying you still owe the charge but that nothing can take the money again until your bank decides. Pay All leaves those charges out and the line under it names the amount it left out, so its total no longer falls below the balance above with nothing accounting for the difference; where everything you owe is held this way there is no Pay All to caption and a banner under the balance carries the account instead. No date is given, because nothing in Syndik8 predicts when a bank will rule. The charge keeps its place in your balance and in the Outstanding list throughout — it is still a debt — and an admin can still record a payment against it if you settle it another way in the meantime. Previously the row looked exactly like a payable one, and you found out by tapping Pay and being refused. Member balance →

  • [feat] [finance] An issued cash call’s due date can now be corrected in place. An admin opens the call and uses the control beside the due date; the correction moves the date on the call and on every member’s charge together, so the Direct Debit collection and the reminders follow it. Cancelling and reissuing the whole call is no longer the only remedy for a mistyped date. It is refused on a cancelled call, in a closed syndicate, and while a payment or collection is already holding one of the call’s charges. Correct a cash call’s due date →
  • [change] [finance] Members are told when a cash call’s due date actually moves. The message names the new day and the day it moved from, and arrives under the same Cash call issued type they already control in their notification preferences. Re-saving the same date tells nobody, and the admin who made the change is not told about their own action. Notification types →
  • [change] [finance] The admin who issues a cash call is no longer sent the announcement of their own cash call. They still hold their charge, still see it in their balance, and are still chased when it falls due. Cash calls →
  • [change] [finance] A member with nothing payable today but a cash call still waiting is no longer told All settled. The Balances tab and the syndicate dashboard balance card now say Nothing due now and name the amount that is not yet due. Money that is not yet due is still not counted as owed; only the wording changed. Member balance →
  • [change] [finance] Credit the syndicate holds for a member now lives on their balance rather than in a separate fund. A credit simply reduces what the member owes until it is used up, and the balance screen is the one place to see it. Member balance →
  • [feat] [finance] Money a member lends the syndicate can now be recorded as a loan: a credit on the member’s balance, marked as a loan so a treasurer can pick it out later. The money comes back as flying, in the same way as any other credit. Record a loan from a member →
  • [change] [finance] Recording a payment from a member now nets off any credit they hold, so the amount suggested is what they actually owe rather than the sum of their charges. Record a payment from a member →
  • [feat] [payments] A refund the payment provider later reports as failed now shows in the Needs attention queue, marked as failed with the provider’s reason where it gave one, instead of sitting indistinguishable from one still waiting to be explained. Work the reversals queue →
  • [change] [payments] Clearing a refund from the Needs attention queue is now permanent. The cleared refund goes on standing against the payment it came off, so that payment can never be refunded through Syndik8 again; the queue says so before you confirm. Work the reversals queue →
  • [feat] [platforms] Refunds can now be read offline: the ones still settling at the payment provider and the ones waiting in the queue to be explained, including whether the provider later reported one failed. Every refund decision is still an online button. Offline capabilities →
  • [change] [platforms] An empty screen now says Still syncing when your data has not yet reached the device, instead of claiming there is nothing to show. A freshly signed-in phone no longer tells you that you owe nothing before it actually knows. Offline capabilities →
  • [change] [subscription] An owner whose syndicate is on a paid plan can now create further syndicates. The one-free-syndicate cap applies only while every syndicate you created is on the free plan. Free-tier limits →
  • [change] [finance] A cash call must now carry a due date. It used to be optional, but a call raised without one could never be given one afterwards — each member’s charge copies the date the moment it is written — so an undated call would have sat on every member’s balance for ever, uncollectable by Direct Debit and with nothing to say when it was owed. The date is chosen when the call is issued. (At the time, correcting one meant cancelling the call and issuing it again; from 2026-08-27 an admin can correct the date in place.) Issue a cash call →
  • [change] [finance] A cash call is no longer counted as owed before its due date. Until the date arrives, a member’s share stays out of their balance figure, out of the Outstanding list and out of Pay All, and appears instead in a Cash calls not due yet card showing what the call is for, when it falls due and what the share is, with a Not due yet total under the balance. Each row keeps its own Pay button, so anyone who wants to settle early still can. Direct Debit has always refused to collect a cash call before its due date; this makes the balance and the buttons agree with the collection. On the due date the charge becomes completely ordinary. Member balance →
  • [feat] [payments] Paying a single charge that would leave you in credit now asks first. Paying one row is charged in full, whereas Pay All and a Direct Debit both take the net after any credit you hold, so paying one row on its own can push you further into credit than you started. The confirmation names your balance now and what the payment leaves it at, and where Pay All is on screen it names that as the alternative that spends the credit instead. Nothing is blocked and no button is hidden — preserving a credit so it reduces a later Direct Debit is a legitimate thing to want. Pay your balance →
  • [change] [subscription] Paid pricing is now charged on two things: how many aircraft a syndicate operates and how many members it has. Aircraft are charged the way income tax is, each at its own rate, so the first costs more than the ones after it and adding one always raises the bill by the advertised amount instead of re-pricing the whole fleet. A flat allowance of member seats is included whatever the fleet size, and only members beyond it are charged. Pricing →
  • [change] [subscription] Annual billing has been withdrawn. Everything is billed monthly, and there is no longer an annual discount. Pricing →
  • [change] [subscription] Founding is now a discount on the ordinary subscription rather than a separate price list. It shows on the invoice as its own line, keeps its value if the syndicate grows, and ends by itself when the term is up. Founding pricing →
  • [feat] [subscription] Adding an aircraft, or inviting a member past the included allowance, now warns a paid syndicate’s admin that the subscription is going up and asks them to accept the new monthly cost first. The question is put as the form opens, before anything has been typed, rather than when the form is saved. The cost is incurred when an invitation is sent rather than when it is accepted, because an outstanding invitation already counts towards the total. Nothing is charged at that moment: the difference is prorated onto the next invoice. On iOS and Android there is no form at all, and an explanation of the cost takes its place, because store rules forbid completing the purchase in the app. Invite members →
  • [fix] [subscription] The monthly rate quoted when adding an aircraft or a member is now the rate the syndicate really pays. A founding syndicate was being shown the full list price for the aircraft or seat it was about to add, despite paying half of it for two years. The figure now comes from the payment provider rather than the price list, so any discount is already in it. The next-invoice figure beside it also says what it covers, since it is one whole invoice including VAT and the part-month while the rate above it is monthly and before VAT. Change your subscription →
  • [change] [subscription] A failed subscription payment no longer runs a countdown of its own. The card is retried for around two weeks by our payment provider, the syndicate keeps full access throughout exactly as before, and if the payment is never made the syndicate moves to the free plan. There is no fixed number of days and no deadline shown, because the provider does not publish its retry schedule, so the admin warning now reads the same throughout instead of counting down from 15. The old limit of one grace period per syndicate goes with it: a later failure gets the same window as the first. Grace period and read-only →
  • [change] [account] The Terms of Service have been updated to match the new pricing, so everyone is asked to accept them again on next use. Section 5 now says billing is monthly, that prices are quoted excluding VAT with UK VAT added at checkout and itemised on the invoice, and that a subscription is priced on the syndicate’s aircraft and members — so it moves when they do, an increase made in the app is confirmed by an admin first, and the difference is prorated onto the next invoice rather than charged on the spot. Pricing →
  • [change] [subscription] A failed subscription payment no longer leads to a lockout of its own. The 15-day grace period now leaves the syndicate completely untouched, and when it ends the syndicate simply moves to the free plan: small syndicates carry on as ordinary free ones, and only those larger than the free plan become read-only, with the usual ways out. Previously a syndicate could be left permanently unable to add bookings or members with no route back except resubscribing. Each syndicate gets one grace period. Grace period →
  • [fix] [finance] A closed syndicate’s ledger is now frozen for everyone, admins included: no charge or payment can be added, changed or deleted, and the refusal is enforced on the server rather than only hidden in the app. A syndicate that is over the free plan is still read-only, but it can now record a payment a member has already made and finalise a flight already flown, so balances and bookings can be cleared and the syndicate can trim its way back within the plan; raising a new cash call and approving an expense stay refused. Grace period and read-only →
  • [docs] First-release pass over the documentation site: un-drafted the auto-finalise, home shell, syndicate shell, and adaptive-layouts pages now that all four are shipped; rewrote the Hobbs/tacho photo reference to describe the actual on-device OCR pipeline (Apple Vision on iOS, ML Kit on Android, four-phase extractor); added a multi-leg walkthrough to the enable auto-finalisation guide; corrected the airworthiness rules page to document automatic suspension of future bookings on grounding; and added a cookies and consent reference page.
  • [fix] Resolved several TKTK placeholders in maintenance and usage reference pages by verifying the current behaviour against shipped code.
  • [docs] Documentation site skeleton laid. Landing page, section indexes, and brand styling in place. No feature documentation yet — drafting begins in subsequent chunks.