Updates to the Groups.io service.
September 2, 2026
- BUGFIX: On the view pending message page, the sender's profile photo in the sender dropdown was drawn as a rounded square instead of a circle like the sender dropdown on other pages. It is a circle again. https://beta.groups.io/g/main/message/41130
- BUGFIX: The edit pending message page still showed the old-style sender dropdown: an underlined name next to a large square photo or user icon, unlike the view pending message and New Topic pages. It now uses the same sender chip as those pages. https://beta.groups.io/g/main/message/41130
- BUGFIX: With the editor set to Markdown, the Preview button under the Bio on your Settings page did nothing: the button changed to Edit and back, but the markdown was never rendered. The preview was asking the `updates` group to render it, which almost nobody has permission to post to, so the request was silently refused. Bios and signatures are now rendered without reference to any group, fixing Preview on the Settings page, the group Profile page, the Subscription page's signature, and a member's signature on the member page. If a preview ever does fail now, it says so instead of leaving you on an empty preview. https://beta.groups.io/g/main/message/41131
September 1, 2026
- CHANGE: When a moderator rejected a member's pending message, the rejection notice sent to the member was not recorded in the member's email delivery history. It is now recorded there as a member notice, the same way rejected subscription notices are, and if the notice bounces, that is recorded in the member's bounce history. https://beta.groups.io/g/main/message/41060
- CHANGE: Posting a message with attachments totaling more than the group's maximum message size could take a minute or more to fail, because the size was only checked after the entire message had been assembled, and when it did fail, the draft was deleted along with everything in it. The size is now checked up front: the post is rejected immediately, and the draft is kept and reopened so the oversized attachments can be removed. Attachment uploads larger than the maximum message size are now also rejected at upload time, with an error stating the group's limit.
- API CHANGE: The `/uploadattachments` endpoint now rejects uploads that exceed the maximum message size with a new `"content too large"` error, instead of accepting attachments too large to ever be posted. `/postdraft` now returns its `"post too big"` error immediately rather than after processing the entire message.
- API NEW: The API could read group databases but not change them: `/getdatabases` and `/getdatabaserows` were the only database endpoints, so scripted changes meant exporting a CSV and manually re-importing it. Three new endpoints complete the set: `/adddatabaserow`, `/updatedatabaserow`, and `/deletedatabaserow`. Updates are partial - columns omitted from the request keep their current values - and rows are addressed by the `id` returned by `/getdatabaserows`. Column values use the same per-column field names as the website's forms (`text_<colid>`, `number_<colid>`, `date_<colid>`, and so on), documented with the new endpoints. Image and GitHub columns cannot be set through the API; on updates their existing values are preserved. https://beta.groups.io/g/api/message/474
- API NEW: Creating a calendar event through the API never notified the group: the web's "Add Event & Invite Group" button had no API equivalent, and the `send_notice` parameter - despite its name - only controls the notice sent when the event starts. The event endpoints now accept a `send_invite` parameter (`/addevent`, `/updateevent`, `/addrepeatevent`, `/updaterepeatevent`, `/splitrepeatevent`) that posts the #cal-invite message with its ICS attachment to the group, and `/deleteevent` and `/deleterepeatevent` accept `send_cancel` to post the #cal-cancelled notice. The `send_notice` parameter documentation has been rewritten to make clear what it actually does. https://beta.groups.io/g/api/message/464
- BUGFIX: When a group went over its storage limit, the site freed space by deleting attachments from its oldest messages. In groups where photos or files took up most of the space, deleting every attachment still would not bring the group under its limit, so this ran every week without ever succeeding: attachments were accepted when posted and then deleted a few days later, leaving messages with missing images and no explanation for the member who posted them or for anyone reading. Messages with attachments sent to a group in that situation are now rejected when they are sent, with a bounce explaining that the group is out of space. Groups where deleting older attachments can still free enough space are unaffected.
- BUGFIX: On the pending message pages, the previous/next message arrows next to the "1 of N" count rendered as tiny unstyled chevrons crammed against the count, instead of the normal navigation buttons. They are now proper buttons again, on both the view and edit pages. https://beta.groups.io/g/main/message/41124
- BUGFIX: The pending message page threw a JavaScript error on every view, which also broke the "Copy Email Address" tooltip in the sender dropdown.
August 31, 2026
- BUGFIX: On the Membership Defaults page, selecting Following Only did not enable the First Message Also and Auto Follow Replies checkboxes, and did not auto-check Auto Follow Replies, so those defaults could not be set. Also changed a leftover "thread" to "topic" in that page's help text and in the plain-text email footer. https://beta.groups.io/g/main/message/41099
- BUGFIX: The note on the hashtag alias page always omitted one hashtag of the pair: creating an alias showed "Topics tagged with # will be transfered to #tag", and editing one showed "transfered to #". The note now shows both hashtags, updating live as you type the name, and "transferred" is spelled correctly. The breadcrumb when creating a hashtag showed a bare "#"; it now says Create Hashtag. https://beta.groups.io/g/main/message/41101
- CHANGE: On the Hashtags page, the grey alias text next to a hashtag's name was hard to read on many box colors, and in dark mode the box titles and topic counts were recolored to the page's dark mode text colors, making them hard to read on light box colors. Text inside the boxes now always uses the text color designed for each box color, with the alias slightly dimmed to stay distinct from the name. https://beta.groups.io/g/main/message/41101
- BUGFIX: A member label with no color was drawn with white text on its white background, making the name invisible in the member labels list, the Set Labels dialogs and previews, and on the member page, where the label disappeared entirely against the page. No-color labels now get dark text and an outline, and the no-color choice in the label color picker shows as white with a border instead of a transparency checkerboard. Also fixed the separator line below the member page's labels, which did not extend the full width. https://beta.groups.io/g/main/message/41097
- CHANGE: The Create Label dialog on the member labels page now shows a live preview of the label as you type, matching the Set Labels dialog on the member page, and the create-label forms across the site now use the same field names and description length. https://beta.groups.io/g/main/message/41097
- BUGFIX: On the group Settings page, the Restricted Membership checkbox (and the Allow Sponsorships checkbox in the General section) rendered as bare, unstyled checkboxes next to their styled neighbors. Both now match the other checkboxes. https://beta.groups.io/g/main/message/41098
- CHANGE: The "To help prevent spam, groups must have at least one of these options set" note sat in a grey footer at the bottom of the Group Type and Moderation section, where it was easy to miss and often required scrolling to see. It now appears as a highlighted note at the top of the section. https://beta.groups.io/g/main/message/41098
- CHANGE: The Two-Factor Authentication Policy setting has moved from the General section of the Settings page into the Privacy section, which is now titled Privacy and Security. https://beta.groups.io/g/main/message/41098
- BUGFIX: The Settings page did not enforce the rule that a group must keep at least one anti-spam option enabled: you could uncheck them all, and the site would silently re-enable New Members Moderated when saving. The page now keeps the last remaining option on (re-checking the checkbox, or reverting the Message Moderation selector), so the page always reflects what will actually be saved.
- BUGFIX: In the label color pickers, the checkmark showing the selected color was drawn in white, making it invisible on the white No Color swatch: editing a label with no color looked like no color was selected. The checkmark is now dark on that swatch. https://beta.groups.io/g/main/message/41109
- CHANGE: The Create/Edit Label dialog on the Member Labels page now shows the same "Enter label name" and "Enter label description" placeholder text as the member page's Set Labels dialog. https://beta.groups.io/g/main/message/41109
- CHANGE: The Group Description editor on the Settings page and the Signature editor on the Subscription page were always at least 400 pixels tall - a minimum sized for the message composer - showing mostly blank space for short content, and could not be resized any smaller. Both editors now size themselves to their content and can be resized down to 200 pixels; the message composer is unchanged. https://beta.groups.io/g/main/message/41108
August 29, 2026
- BUGFIX: The activity log entry for removing a group alias showed an internal id number ("removed group alias 153958") instead of the alias itself. It now logs the alias name, and both the added and removed entries quote it like other text values in the log. Existing entries are unchanged. https://beta.groups.io/g/main/message/41096
August 28, 2026
- BUGFIX: On a member's page in the admin area, the Moderator Permissions, Moderator Notifications and Owner Email sections — which should only appear when the person's role is moderator or owner — displayed for every member. This was display-only: no member gained any permission, and the page is only visible to moderators and owners in the first place. The sections once again appear only when the role calls for them. https://beta.groups.io/g/main/message/41073
- BUGFIX: Dropdown selects across the restyled admin pages — group Settings, Membership Defaults, Direct Add, member pages, and others — were missing their down-triangle in every browser, and were sized wider than before. A restyling class that suppresses the native triangle (expecting a replacement image that only comes with the correct class for selects) had been applied to some pages but not most. All selects now show the triangle and return to sizing to their content, on every restyled page. https://beta.groups.io/g/main/message/41076
- BUGFIX: In dark mode, member labels (and any other colored chip) displayed grey instead of their assigned color. Dark mode's grey treatment is meant for count badges only; it now leaves anything carrying a color alone, as it always did before the restyling. https://beta.groups.io/g/main/message/41079
- CHANGE: On the group Aliases page, the entry form now sits above the list of aliases — matching the Banned Domains arrangement — so adding an alias no longer requires scrolling past a long list. The help text moved into the box itself as placeholder text, the list is sorted alphabetically instead of by the date added, and the add buttons on both the Aliases and Banned Domains pages get a little breathing room above them. https://beta.groups.io/g/main/message/41078
- BUGFIX: In the Moderator Permissions list on a member's admin page, the "Invite Members" checkbox rendered indented differently from the rest of the list. It now lines up with its neighbors. https://beta.groups.io/g/main/message/41084
- CHANGE: The sections on a member's admin page — User Details, Moderator Permissions, Member Notifications, Email Delivery, and the rest — are now collapsible, like the corresponding sections on the Subscription page, so sections you aren't using can be folded out of the way. They start expanded. Section headings on both pages also now use a single consistent color; previously the collapsible ones rendered slightly darker than the static ones. https://beta.groups.io/g/main/message/41084
- BUGFIX: The check that blocks executable files inside archive attachments — which Gmail and most other providers reject outright, for every recipient — decided whether an attachment was an archive from its file name. An archive renamed to a different extension (a `.zip` sent as `.zip.xxx`, with a note telling recipients to rename it back) slipped past the check, so the message was accepted and distributed, and then rejected by every provider that looked inside — half the group never received it, with no indication to the sender that anything had gone wrong. Attachments are now recognized as archives by their content, whatever the file name, including archives nested inside other archives, and such messages are returned to the sender at posting time with the usual executable-attachment notice.
- INTERNAL: Related: an executable renamed to an innocuous extension — attached bare or placed inside an archive — still passes the name-based checks but is likewise rejected by providers that inspect content. Messages are now scanned for Windows, Linux and Mac executable content behind misleading names at posting time; detections are logged but not yet enforced while the detector's accuracy is confirmed against real traffic.
- BUGFIX: When a member accepted or declined a calendar invitation from a group hosted on its own domain — an Enterprise group, or a group with its own subdomain — the reply their calendar program sent back automatically (Outlook's "Accepted: ..." message, for example) was rejected by our mail server, so the member received a confusing "This group does not exist" bounce and their response was never recorded on the event's RSVP list. Those replies are now processed just as they are for groups at groups.io addresses: the response is recorded and no bounce is sent.
August 27, 2026
- BUGFIX: When viewing a message, the "View All Messages" link always loaded the first page of the topic, so if the message was not within the first page — including a reply you had just posted — it was nowhere in view. The link now takes you to the page of the topic containing the message and positions on it, in either sort direction. https://beta.groups.io/g/main/message/41036
- CHANGE: In groups set so that messages from members can only be tagged with existing hashtags, moderators could always create new hashtags by including them in a message subject, even without the "Create or Modify Hashtags" permission — meaning a typo in a subject line could silently create a new hashtag. That permission is now honored when posting: a moderator without it is treated like a regular member, and their message is bounced or the new hashtag removed, depending on the group setting. Owners, moderators with the permission, and groups using the default hashtag setting are unaffected.
- BUGFIX: When composing a message in the web interface on a phone-sized screen, the editor toolbar was missing most of its formatting tools — alignment, lists, indents, blockquote, and the extended formatting menu (fonts, colors, strikethrough, special characters) were gone entirely, with no way to reach them, even by rotating to landscape. The full set of formatting tools is now available on mobile: the most-used buttons stay visible, and the rest are behind a `...` overflow at the end of the toolbar. https://beta.groups.io/g/main/message/41021
- BUGFIX: The "view all your groups" links at the top of HTML digests and daily summaries, and in the default Welcome notice, pointed at the site home page — which took logged-in members to whatever page they last used as their home view instead of their groups list, and showed logged-out members the front page. Those links now go directly to the Your Groups page, and if you are logged out, you are prompted to log in and then taken there. https://beta.groups.io/g/main/message/41020
- API BUGFIX: The documentation for `/addrepeatevent` and `/updaterepeatevent` listed the wrong values for several repeat parameters. `repeat_type` was described as `1=daily, 2=weekly, 3=monthly, 4=yearly`, when `2` actually means every Monday/Wednesday/Friday and weekly on selected days is `4`, so a client following the documentation to create a weekly event silently got a Monday/Wednesday/Friday series instead. The `repeat_ends` values for "times" and "date" were also reversed, and the `month_type` values were wrong and incomplete. The documentation now matches the implementation, and both endpoints reject an out of range `repeat_type` with `bad_request`: `invalid repeat_type` instead of quietly creating a different repeat pattern. An unparseable `timezone`, which shifted every occurrence to the wrong day of the week, is now rejected the same way.
- API BUGFIX: `/updaterepeatevent`, `/splitrepeatevent` and `/deleterepeatevent` still acted on repeating events that had already been deleted; updating or splitting one brought the series back and started generating its occurrences again. They now return `bad_request` for a deleted series.
- BUGFIX: A deleted repeating event could come back on its own. If the series had been created from an emailed calendar invitation, a later invitation carrying the same event id — a re-send, or an update from the organizer's calendar program — recreated it as a new live series, and an RSVP reply to a reminder email sent before the deletion could do the same. Deleting a repeating event now sticks: invitations and RSVP replies for a deleted series are ignored.
- NEW: Calendar events that request RSVPs and have a maximum attendee limit now display a badge on the calendar showing the number of spots still available, or Full when the event has reached its limit — so you can scan a month of events for one with space without opening each event. The badge appears in the month, week, day, and list views of both a group's calendar and the consolidated calendar, and hovering over it shows the details. Events without an attendance limit are unchanged. https://beta.groups.io/g/main/message/41031) [beta.groups.io](https://beta.groups.io/g/main/message/40912
- CHANGE: In the activity log, entries for topics that were automatically deleted because a hashtag expired were filed under "Hashtag - Expired" — an easy place to overlook when looking for a deleted topic, since every other deletion is listed under "Message - ..." or "Topic - ...". The action is now named "Topic - Deleted due to expired hashtag" and appears in the action filter directly after "Topic - Deleted". Existing log entries are unaffected other than the new name. https://beta.groups.io/g/main/message/40997
- NEW: The Direct Add page of a group with subgroups now has a "Restore previous subgroup memberships" checkbox, unchecked by default. When checked, anyone being added who was previously a member of the group is also added back to the subgroups they belonged to when they were removed, with their previous delivery settings, and the subgroups are listed in the notice they receive. This helps groups that remove members when a paid membership lapses and re-add them when they renew — previously, the person's subgroup memberships had to be rebuilt by hand. Moderator and owner roles are not restored, and subgroups explicitly checked on the page are added with default settings as before. It works for removals that predate this feature.
- API NEW: `/directadd` accepts a new optional boolean parameter, `restore_subgroups`, equivalent to the new "Restore previous subgroup memberships" checkbox. Restored subgroup memberships are included in the response's `added_members`.
- BUGFIX: Banning an email address that didn't already have a Groups.io account ran the address through the same validation used for new registrations, so addresses on disposable email domains, role accounts like `postmaster@`, and similar were rejected with "That email address is not valid" — exactly the addresses moderators most want to ban. Banning now only requires that the address be a plausible email address. https://beta.groups.io/g/main/message/40936
- CHANGE: Activity log entries for event RSVPs named the event but not its date, so with repeating events — which all share the same name — there was no way to tell which occurrence someone had RSVPed to without opening each instance on the calendar. RSVP entries now include the event's date, e.g. "RSVPed yes to event Weekly Training (scheduled for Sep 16)". This also covers RSVPs removed or changed by a moderator, waitlist promotions, and attendee comment edits. The dates — including those already shown on added/updated/deleted event entries — are now displayed using your timezone and date format preferences. Existing log entries are unchanged. https://beta.groups.io/g/main/message/40961
- CHANGE: Changed the second batch of web pages from Bootstrap 3 to Bootstrap 5: all of a group's admin pages — Members, Pending Messages, Invitations, Settings, Membership Defaults, Billing, Paid Memberships, subgroup management, and the rest. This is plumbing, not a redesign; the pages should look and behave as before.
- BUGFIX: On the Pending Messages, Activity, Manage Chat Members and Subgroup Members pages, the search box could sit on top of the list, hiding it — a side effect of the restyling above. Reported on beta within hours; fixed the same evening. https://beta.groups.io/g/main/message/41063
- BUGFIX: On phones, tables on the restyled admin pages — most painfully the Activity log — wrapped each row over many screen lines instead of keeping one line per entry with sideways scrolling, the way they had always displayed. The new framework kept the responsive-table class but dropped its phone behavior. One line per row, scrolling sideways, is restored on all the restyled pages. https://beta.groups.io/g/main/message/41067
- INTERNAL: The browser error reporter could not deliver a report when the site's JavaScript bundle failed to download, because the reporter itself depended on that bundle — so real users with failed loads were invisible, while scraper bots (which inject their own jQuery) flooded the log with the follow-on errors. The reporter now uses a transport of its own, sends a single classified `bundle-load-failure` report naming the script that failed, suppresses the cascade of "not defined" errors that follow a failed bundle, and records whether the reporting browser had a session cookie, separating members from bots at a glance.
August 26, 2026
- API BUGFIX: Paginated API endpoints treated an invalid or out of range `page_token` as the first page while still reporting `has_more`, so a client with a bad token would loop over the first page forever. Such a token now returns an empty page with `has_more` false. https://beta.groups.io/g/api/message/467
- API BUGFIX: The last page of `/gettopics` results within a group reported `has_more` along with a `next_page_token` that was not a valid cursor, causing an `invalid_value` error when used. Paging through a group's topics now terminates cleanly.
August 20, 2026
- INTERNAL: Spent most of the week dealing with a major, ongoing, bot scraper attack - adding additional defenses against it, adding additional monitoring, and optimizing systems.
August 19, 2026
- CHANGE: Groups on the free plan are now notified when people try to join but can't. If your group is at the 100-member limit, owners and moderators receive a weekly email when join attempts were turned away, with a link to the activity log showing who tried. Denied join attempts that arrive by email are now recorded in the activity log as well.
August 17, 2026
- INTERNAL: Added additional protections against bot group signups.
- BUGFIX: Fixed a case where in rare circumstances, when a message is deleted, it should still show up on the group home page and in search results. https://beta.groups.io/g/main/message/40992
- BUGFIX: Messages that had signature blocks that were very long (or had parts that looked like signature blocks that were very long) would not be included in search results.
August 7, 2026
- BUGFIX: The About page link was incorrect.
- CHANGE: Change the `Automatic` Dark Mode setting label to `Follow Device Setting`
August 5, 2026
- BUGFIX: The website now listens for light/dark mode change events and adjusts the page accordingly, instead of waiting for full page reloads.
August 3, 2026
- NEW: New demo videos: subgroups, billing, moderation, invite members, account recovery, co-owners, and delivery settings.
July 31, 2026
- BUGFIX: Misc web page fixes. https://beta.groups.io/g/main/topic/site_styling_update_is_live/120511916
- CHANGE: Continued work on the new `Ask` feature. https://beta.groups.io/g/ai/topic/ask_improvements/120207605
- API NEW: Added a complete set of webhook API endpoints.
July 29, 2026
- CHANGE: Changed the first batch of web pages from Bootstrap 3 to Bootstrap 5.
- NEW: Added a web form for support request submissions.
July 27, 2026
- INTERNAL: Changed the groups.io DMARC signature to p=quarantine;pct=10
July 18, 2026
- API CHANGE: Improved the error returns on many API endpoints and fixed a few inconsistencies.
July 17, 2026
- CHANGE: Merged Stephane Fillod's French translations. Thanks Stephane!
- CHANGE: Updated all translations and corrected several issues.
- CHANGE: The Ask feature now respects commands to only search messages/files/etc as well as better date handling.
- CHANGE: When someone changes their RSVP to "Will Not Attend," they're now prompted for the comment right in the confirmation dialog, so collecting a reason for not attending works naturally.
- CHANGE: Previously, changing an event response could silently erase a member's earlier comment. Comments now carry over.
- CHANGE: There's a new per-event option, "Attendee comments are visible to all members." With it checked, everyone in the group can see the comments on the event's Responses page - useful for coordinating who's bringing what, or who's filling which position or location. Left unchecked, comments stay visible only to the event organizers, as today.
- BUGFIX: For format=flowed text emails, we would strip trailing spaces after the `--` signature delimiter.
July 16, 2026
- API NEW: Added the `/updatetopic` endpoint to update a topic's subject and hashtags, moderation, locked and sticky states, and reply-to setting.
- API NEW: Added a machine-readable Groups.io API skill guide at `/api/SKILLS.md`.
- CHANGE: "Group Profile" sidebar now opens the editable form.
- CHANGE: Empty profile fields become actionable on your own profile; there is now a muted "+ Add" link next to each.
- CHANGE: In Settings, added a note next to the existing profile-sync note - _"Custom fields defined by a group (for example Organisation or Job Title) do not appear here — they live on each group's own profile. To fill them in… Subscription > Group Profile … Edit Group Profile."_
- CHANGE: Added help text under "Viewable In A Member's Profile" — _"When checked, members can view and fill in this field on their own group profile (Subscription > Group Profile). When unchecked, only moderators can see or edit it."_
- DOCS: Updates from Nina. https://groups.io/helpcenter/single/revisionhistory
July 14, 2026
- NEW: Paid membership support early-access has launched.