AO3 News

Post Header

2015-02-01 04:45:18 -0500

This batch of code includes several new features and enhancements aimed at assisting the Abuse team in their work, as well as some changes under the hood to protect us against attacks from download bots while keeping disruptions for our users to a minimum.

When we announced that we'd be suspending our automated invitation queue at the beginning of the month, we didn't plan for it to be closed quite this long! Writing, testing, and improving the new code, while also working with Abuse and taking care of our servers through planned and unplanned downtimes, took considerably longer than we expected.

While the queue was closed, we continued to provide invitation codes to existing users upon request. According to our records, we handed out over 5000 such invitations this month, which is more than three times our usual number. To everyone who reached out to friends and strangers to share invitations, we thank you!

If you wanted to create an account in January and couldn't - we're very sorry for making you wait! The queue is now back in business: request an invitation today and receive a code in 48 hours or less!


  • Coders: Elz, Enigel, james_, Sarken, Scott
  • Code reviewers: Elz, Enigel, james_, Sarken, Scott
  • Testers: Lady Oscar, mumble, Sarken



  • In order to combat spam works (e.g., works consisting solely of advertisements), our Abuse team will now be automatically notified of accounts with a suspicious level of activity or works with suspicious content, allowing them to investigate before the problem gets out of hand.
  • When our Abuse team hides a work that is under investigation, the creator(s) of the work will now receive an automatic email, letting them know the work has been hidden intentionally and not as the result of a bug. The email also contains a link to the work so that they (but no one else) can access it while it is hidden.
  • Users whose accounts have been permanently suspended (banned) are not allowed to create new works, but it was still possible for other users to list them as co-authors. Now they cannot be added as co-authors unless the ban is lifted.
  • When a user's account is temporarily suspended, the error message they receive when attempting to post, comment, or perform other actions will now let them know when they can expect their suspension to be lifted.
  • Attempting to post, comment, or perform other actions using a suspended account previously resulted in an error message that said, "Please contact us for more information." The message has been clarified to say, "Please contact Abuse," and now provides a link to the appropriate contact form.
  • When an admin deleted an invitation request submitted through our automated queue (e.g., because the requester was likely to be a known spammer), they would be redirected to the first page of the list, which was annoying if they needed to delete more than one request on the same page. Now they will be returned to the page they were on.


  • We were receiving reports from users whose IP addresses were blocked from accessing the Archive for downloading too many works too quickly, even though they hadn't done anything wrong. This would happen, for example, if their browser tried to download a file many times, despite the user having only clicked the download button once. We have added code and tweaked server settings to make this much less likely. In particular, we are now serving cached copies of downloads to users, which are currently refreshed on the server as soon as a work is updated.
  • During site-wide downtime because of an overwhelmed server, users were receiving an error page that incorrectly stated they were downloading works too quickly. We've corrected the error page we give when the Archive is down and also added a dedicated error page to let users know when they are posting works too quickly.

Known Issues

See our Known Issues page for current issues.

(Please note that while it looks like we skipped several version numbers since our last batch of updates (Release 0.9.41), you haven't missed out on any new code! The jump is due to a few test deploys to get our deploy script into shape after adding another server to our line-up.)