diff --git a/polygerrit-ui/app/services/gr-rest-api/gr-rest-api-impl.ts b/polygerrit-ui/app/services/gr-rest-api/gr-rest-api-impl.ts
index 11644f0..a03680a 100644
--- a/polygerrit-ui/app/services/gr-rest-api/gr-rest-api-impl.ts
+++ b/polygerrit-ui/app/services/gr-rest-api/gr-rest-api-impl.ts
@@ -8,7 +8,6 @@
 import {GrEtagDecorator} from '../../elements/shared/gr-rest-api-interface/gr-etag-decorator';
 import {GrReviewerUpdatesParser} from '../../elements/shared/gr-rest-api-interface/gr-reviewer-updates-parser';
 import {parseDate} from '../../utils/date-util';
-import {getBaseUrl} from '../../utils/url-util';
 import {getParentIndex, isMergeParent} from '../../utils/patch-set-util';
 import {listChangesOptionsToHex} from '../../utils/change-util';
 import {assertNever, hasOwnProperty} from '../../utils/common-util';
@@ -2867,17 +2866,15 @@
   }
 
   _fetchB64File(url: string): Promise<Base64File> {
-    return this._restApiHelper
-      .fetch({url: getBaseUrl() + url})
-      .then(response => {
-        if (!response.ok) {
-          return Promise.reject(new Error(response.statusText));
-        }
-        const type = response.headers.get('X-FYI-Content-Type');
-        return response.text().then(text => {
-          return {body: text, type};
-        });
+    return this._restApiHelper.fetch({url}).then(response => {
+      if (!response.ok) {
+        return Promise.reject(new Error(response.statusText));
+      }
+      const type = response.headers.get('X-FYI-Content-Type');
+      return response.text().then(text => {
+        return {body: text, type};
       });
+    });
   }
 
   getB64FileContents(
