AO3 News

Post Header

2022-03-20 22:32:39 UTC

The last few releases focused on maintenance and our road to internationalization. We additionally made it possible to opt in or out of gifts.

A special thank you to first-time contributors Arianna Story, Brian Austin, Jesse Weinstein, keziah, weeklies!


  • Coders: Ariana, Arianna Story, bird, Brian Austin, Cesy, cosette, Daroc Alden, james_, Jesse Weinstein, Kate Boyd, keziah, korrien, redsummernight, Rudolf M. Schreier (ThePadawan), Sarken, ticking instant, weeklies
  • Code reviewers: Lara_S, redsummernight, Sarken, ticking instant
  • Testers: CJ Record, Frost The Fox, GoldenFalls, Heleen, james_, Laure Dauban, lydia-theda, Maine, Nary, Priscilla, Qem, redsummernight, Ridicully, Runt, Sammie Louise, Sarken, Teyke



Update from Elasticsearch 6 to 7, deployed on November 24, 2021.

  • [AO3-5671] – We updated Elasticsearch to version 7.15.


A couple of quick and boring-yet-necessary changes, deployed on December 5, 2021.

  • [AO3-6263] – We made SSL for SMTP configurable so sending mail wouldn’t error when we updated Debian.
  • [AO3-6260] – We removed some configuration and setup files for a service we no longer use to run automated tests.


Assorted bug fixes and improvements, with some progress on internationalization, deployed on January 6, 2022.

  • [AO3-6262] – We installed the rails-i18n gem so we’d have pluralization rules for all languages and would stop getting errors about missing keys.
  • [AO3-6225] – When you change your account’s email address, you have to enter the address twice to make sure you didn’t make a typo. It used to require the capitalization of the addresses to match, which was taking things to a bit of an extreme; now it won’t complain if the capitalization doesn’t match.
  • [AO3-6189] – We stopped setting the time zone in the backend when displaying gift exchanges and prompt memes, because it was contributing to dates displaying inconsistently. Now dates may still display inconsistently, but for different reasons. Progress!
  • [AO3-6161] – The form for uploading an icon says your icon has to be in png, jpeg or gif formats, but it was still letting bmp files be uploaded. We’ve fixed that.
  • [AO3-5926] – If you deleted the first chapter of a two-chapter work, the remaining chapter would continue to be called “Chapter 2.” We’ve made sure it gets renumbered properly.
  • [AO3-6132] – We added user IDs to series blurbs to make it easier to hide or highlight series based on their creators.
  • [AO3-6093] – We’ve made it so translations of news posts will automatically inherit the tags used on the English version, eliminating the need for translation uploaders to copy the information manually.
  • [AO3-6261] – We had an outdated link for contacting the Open Doors team in a few places, so we’ve updated it.
  • [AO3-6270] – We bumped our version of the Elasticsearch gem up to 7.16.1, since that’s the version we were actually using.


Opting in or out of gifts, plus assorted bug fixes and cosmetic changes, deployed on Feb 6, 2022.

  • [AO3-6269] – When you have invitations to share, you have to select which one you want to send. However, the labels and buttons for doing this weren’t coded accessibly. We’ve fixed that.
  • [AO3-6190] – We started using the Rails time zone for work and chapter date calculations. They were previously using the servers’ time zone, which resulted in some fun date-related bugs when posting between the hours of midnight and 04:00 UTC.
  • [AO3-5754] – If you didn’t enter enough text when trying to reply to a comment from the homepage, the error message would be partially covered by the buttons for submitting the comment or closing the form. We’ve uncovered it so you can read it.
  • [AO3-5718] – URLs with non-ASCII characters were giving timeout errors when citing related works or creating bookmarks of external works, so we’ve fixed that.
  • [AO3-5246] – If you try to access a restricted work while logged out, the page would link to the account creation page even if account creation was off. We’ve made sure it’ll have the correct information regardless of the site’s current settings.
  • [AO3-5127] – Mystery work blurbs were listing all unrevealed collections the work was in, even moderated collections where it was pending approval. We’ve made it so it will only list approved collections.
  • [AO3-6258] – We changed the subject of the email sent after creating an account.
  • [AO3-6242] – Policy & Abuse can now search invitation requests by IP address.
  • [AO3-6257] – We made it possible for users to opt in or out of gifts.
  • [AO3-5867] – To make our translators’ lives a bit easier, we made some changes to how co-creator and Open Doors emails are coded.
  • [AO3-5619] – Because our Policy & Abuse team handles more than abuse reports, we’ve changed the old “Report Abuse” link text in the footer and site map to say “Policy Questions & Abuse Reports” instead.
  • [AO3-6231] – We updated the help text for the “Turn off emails about collections” preference.
  • [AO3-6249] – The “Pseuds” link in Dashboard menu would switch to displaying the person’s username on pages other than the Dashboard. Now it’ll just say “Pseuds” all the time.
  • [AO3-6182] – We tidied up the code for collection items by making their approval status attributes into enums.
  • [AO3-4037] – We had tons of errors in Resque due to trying to send email for comments that were nonexistent (e.g., because they hadn’t been fully saved to the database yet or because they’d been quickly deleted). This was making it hard to see other important errors, so we’ve made it retry sending the email three times (in case the database just wasn’t updated) and then fail silently.
  • [AO3-6227] – If the creator of a work in your History deleted said work, the lingering information wasn’t being styled correctly, nor was it getting immediately removed when you deleted it from your history. We fixed both of these things in one fell swoop by putting back a CSS class we’d accidentally removed.
  • [AO3-6289] – We resolved some Brakeman warnings about permitted parameters in several URLs.