Over the past year or so the performance of the Bitbucket Cloud pull request screen has noticeably degraded. I have received numerous reports from developers in my organization of the pull request diff panel timing out before the diff is loaded. Sometimes a manual refresh can fix this issue, but at other times multiple attempts to load the pull request screen will fail. The error that appears on screen says,
Something went wrong
The diff has timed out. For more information on diff limits or managing pull request size, refer to Limits for viewing content and diffs. If this issue persists, contact support.atlassian.com.
The problem is that these diffs are not large; some are as small as a few changed line in a handful of files or less. The timeout issue appears to be unrelated to the size of the diff itself, although it may be related to the size of the repo in question (more on this below). With the JS console open, I see this error appear when the diff times out:
[Error] Failed to load resource: the server responded with a status of 555 () (<repo_name>:779b5391850b
bf5555f8fbdd, line 0)
So far, we have only observed this issue in one repo, which tracks work on our largest and oldest project. While the disk size of this repo isn't TOO large (581.9MB), it has a long history spanning about 47K commits. (Our "short" commit IDs are 10 characters.) It may be that the problem is not the size of the diffs themselves, but the underlying repo history.
However, the repo is what it is, and we would not want to consider truncating our history just to resolve a technical issue on Bitbucket's side. The pull request interface's performance under these conditions is unacceptable, and fueling discussion of leaving Bitbucket for GitHub. If there is anything Atlassian can do to improve performance, I would rather stay than migrate and undertake the headache that goes with that. But we can't stay if it continues to behave this way.