Skip to content

AO3-7531 Remove active URL validation for external works#5940

Open
hab-bang wants to merge 2 commits into
otwcode:masterfrom
hab-bang:AO3-7531-remove-active-url-validation-for-external-works
Open

AO3-7531 Remove active URL validation for external works#5940
hab-bang wants to merge 2 commits into
otwcode:masterfrom
hab-bang:AO3-7531-remove-active-url-validation-for-external-works

Conversation

@hab-bang

Copy link
Copy Markdown

Pull Request Checklist

Issue

https://otwarchive.atlassian.net/browse/AO3-7531

Purpose

Removing the active URL validation for external works (the url_active validation and its UrlActiveValidator).

According to the Jira issue, many sites have been blocking requests from AO3's servers, so external works with valid but currently-unreachable URLs were being rejected at save time.

Allowlisting individual sites had become infeasible (or more like, unmaintainable), and the check's original purpose, which was to flag dead links, no longer exists.

URL format validation (url_format) is kept, so malformed URLs are still rejected — only the reachability check is removed. External works and their bookmarks now save regardless of whether the URL is currently reachable.

Testing Instructions

Bookmark an external work with a valid but unreachable URL (e.g.
http://foo.invalid, or a site that blocks AO3 such as Reddit):

  • Before this change: the save is rejected with "Url could not be reached. If the URL is correct and the site is currently down, please try again later."
  • After this change: the bookmark saves successfully.

Format validation is unchanged; a malformed URL such as no_scheme.com is still rejected with "does not appear to be a valid URL."

Full testing instructions are also on the Jira ticket.

References

The unreachable-URL messaging removed here was originally introduced under AO3-1783 and AO3-3536 (referenced in the feature-test comments that this PR also removes).

Credit

Name: hayoung
Pronouns: she/her

@Bilka2

Bilka2 commented Jul 18, 2026

Copy link
Copy Markdown
Contributor

Hi, hayoung!

Thanks so much for this pull request. Someone will be along to review it soon.

We've updated the Jira issue status to In Review so no one mistakenly creates a duplicate pull request. If you'd like the ability to comment on, assign, and transition issues in the future, you're welcome to create a Jira account! It makes things a bit easier for us on the organizational side if the Full Name on your Jira account either closely matches the name you'd like us to credit in the release notes or includes it in parentheses, e.g. "Nickname (CREDIT NAME)."

Once you've done that (or if you've already done it -- Jira has been unreliable about showing us new accounts in the admin panel lately), you can either reply here or send an email to otw-coders@transformativeworks.org with your account name and email address and we'll set up the permissions for you.

Thanks again for contributing! If you have any questions, you can contact us at the same email address listed above.

@hab-bang

hab-bang commented Jul 18, 2026

Copy link
Copy Markdown
Author

Hi, hayoung!

Thanks so much for this pull request. Someone will be along to review it soon.

We've updated the Jira issue status to In Review so no one mistakenly creates a duplicate pull request. If you'd like the ability to comment on, assign, and transition issues in the future, you're welcome to create a Jira account! It makes things a bit easier for us on the organizational side if the Full Name on your Jira account either closely matches the name you'd like us to credit in the release notes or includes it in parentheses, e.g. "Nickname (CREDIT NAME)."

Once you've done that (or if you've already done it -- Jira has been unreliable about showing us new accounts in the admin panel lately), you can either reply here or send an email to otw-coders@transformativeworks.org with your account name and email address and we'll set up the permissions for you.

Thanks again for contributing! If you have any questions, you can contact us at the same email address listed above.

Hi @Bilka2 ! Thank you so much for the reply.

Yes, I have made a Jira account. The email is <censored> and the full name is Woo Hayoung. Are you going to add me to the organization so that my account will be linked to the Issue?

(I'm sorry, this is my first time making a Jira account!)

Also, I saw that the CI failed at Reviewdog/Rubocop. My apologies for that! I'll do a fix and re-push to pass that check. I'll do it soon.

Thank you again!

@Bilka2

Bilka2 commented Jul 18, 2026

Copy link
Copy Markdown
Contributor

Are you going to add me to the organization so that my account will be linked to the Issue?

Yup, I've sent an invitation to your email address that will automatically set the right permissions if you log in with it. I've also assigned the issue to you. Please let us know if you run into any issues with the signup process!

@hab-bang

Copy link
Copy Markdown
Author

Yup, I've sent an invitation to your email address that will automatically set the right permissions if you log in with it. I've also assigned the issue to you. Please let us know if you run into any issues with the signup process!

Thank you! I've accepted the invitation and can see the issue being assigned to me. I've also committed the fix for the RuboCop lint errors. I think the CI is good now.

Looking forward to the review!

@Bilka2 Bilka2 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The code looks great, thank you!

@hab-bang

Copy link
Copy Markdown
Author

The code looks great, thank you!

Thank you! I saw that you have approved it too, thank you again!

May I know if I have to do something else right now? On the Jira ticket or here?

@Bilka2

Bilka2 commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

May I know if I have to do something else right now? On the Jira ticket or here?

There is nothing else that you need to do for now. We will schedule the Jira issue for a deploy at some point, then we'll merge your PR and it will go through manual QA. If an issue is found during that we'll set the issue status to "Broken On Test" and ask you to fix the bug by pinging you on Jira. If all goes well during QA then the code will be deployed to production and you'll be credited in the release notes.

@hab-bang

Copy link
Copy Markdown
Author

May I know if I have to do something else right now? On the Jira ticket or here?

There is nothing else that you need to do for now. We will schedule the Jira issue for a deploy at some point, then we'll merge your PR and it will go through manual QA. If an issue is found during that we'll set the issue status to "Broken On Test" and ask you to fix the bug by pinging you on Jira. If all goes well during QA then the code will be deployed to production and you'll be credited in the release notes.

Thank you! And yes please let me know if there's any bugs introduced by this PR; I'll try my best to fix them too.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants