Skip to content

Commit daf2133

Browse files
authored
fix(remix): Ensure source maps upload fails silently if Sentry CLI fails (#17082)
Sentry CLI's `cli.releases.uploadSourceMaps` method previously never rejected when the actual CLI binary execution exited with an error code. In CLI 2.49.0 (and 2.50.0) I added a new live mode `rejectOnError` which continues to pipe stdio to the process (the remix SDKs' upload script) but now also rejects on error. This PR 1. bumps Sentry CLI, 2. configures the CLI to actually reject now but 3. also catches the rejection and logs a message. I decided to still continue with the script because we should still delete source maps. Otherwise, we risk deploying them when users expect them to be deleted. (i.e. fail silently but correctly :D)
1 parent c915357 commit daf2133

File tree

4 files changed

+130
-51
lines changed

4 files changed

+130
-51
lines changed

packages/remix/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@
6868
"@opentelemetry/instrumentation": "^0.203.0",
6969
"@opentelemetry/semantic-conventions": "^1.34.0",
7070
"@remix-run/router": "1.x",
71-
"@sentry/cli": "^2.46.0",
71+
"@sentry/cli": "^2.50.0",
7272
"@sentry/core": "9.40.0",
7373
"@sentry/node": "9.40.0",
7474
"@sentry/react": "9.40.0",

packages/remix/scripts/createRelease.js

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,22 @@ async function createRelease(argv, URL_PREFIX, BUILD_PATH) {
2727

2828
await sentry.releases.new(release);
2929

30-
await sentry.releases.uploadSourceMaps(release, {
31-
urlPrefix: URL_PREFIX,
32-
include: [BUILD_PATH],
33-
useArtifactBundle: !argv.disableDebugIds,
34-
});
30+
try {
31+
await sentry.releases.uploadSourceMaps(release, {
32+
urlPrefix: URL_PREFIX,
33+
include: [BUILD_PATH],
34+
useArtifactBundle: !argv.disableDebugIds,
35+
live: 'rejectOnError',
36+
});
37+
} catch (error) {
38+
console.warn('[sentry] Failed to upload sourcemaps.');
39+
}
3540

36-
await sentry.releases.finalize(release);
41+
try {
42+
await sentry.releases.finalize(release);
43+
} catch (error) {
44+
console.warn('[sentry] Failed to finalize release.');
45+
}
3746

3847
if (argv.deleteAfterUpload) {
3948
try {

packages/remix/test/scripts/upload-sourcemaps.test.ts

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ const uploadSourceMapsMock = vi.fn();
55
const finalizeMock = vi.fn();
66
const proposeVersionMock = vi.fn(() => '0.1.2.3.4');
77

8+
const consoleWarnSpy = vi.spyOn(console, 'warn').mockImplementation(() => {});
9+
810
// The createRelease script requires the Sentry CLI, which we need to mock so we
911
// hook require to do this
1012
async function mock(mockedUri: string, stub: any) {
@@ -56,6 +58,7 @@ describe('createRelease', () => {
5658
urlPrefix: '~/build/',
5759
include: ['public/build'],
5860
useArtifactBundle: true,
61+
live: 'rejectOnError',
5962
});
6063
expect(finalizeMock).toHaveBeenCalledWith('0.1.2.3');
6164
});
@@ -69,6 +72,7 @@ describe('createRelease', () => {
6972
urlPrefix: '~/build/',
7073
include: ['public/build'],
7174
useArtifactBundle: true,
75+
live: 'rejectOnError',
7276
});
7377
expect(finalizeMock).toHaveBeenCalledWith('0.1.2.3.4');
7478
});
@@ -89,9 +93,35 @@ describe('createRelease', () => {
8993
urlPrefix: '~/build/',
9094
include: ['public/build'],
9195
useArtifactBundle: true,
96+
live: 'rejectOnError',
9297
});
9398
expect(finalizeMock).toHaveBeenCalledWith('0.1.2.3.4');
9499
});
100+
101+
it('logs an error when uploadSourceMaps fails', async () => {
102+
uploadSourceMapsMock.mockRejectedValue(new Error('Failed to upload sourcemaps'));
103+
104+
await createRelease({}, '~/build/', 'public/build');
105+
106+
expect(uploadSourceMapsMock).toHaveBeenCalledWith('0.1.2.3.4', {
107+
urlPrefix: '~/build/',
108+
include: ['public/build'],
109+
useArtifactBundle: true,
110+
live: 'rejectOnError',
111+
});
112+
113+
expect(consoleWarnSpy).toHaveBeenCalledWith('[sentry] Failed to upload sourcemaps.');
114+
115+
expect(finalizeMock).toHaveBeenCalledWith('0.1.2.3.4');
116+
});
117+
118+
it('logs an error when finalize fails', async () => {
119+
finalizeMock.mockRejectedValue(new Error('Failed to finalize release'));
120+
121+
await createRelease({}, '~/build/', 'public/build');
122+
123+
expect(consoleWarnSpy).toHaveBeenCalledWith('[sentry] Failed to finalize release.');
124+
});
95125
});
96126

97127
// To avoid `--isolatedModules` flag as we're not importing

yarn.lock

Lines changed: 84 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -6961,75 +6961,115 @@
69616961
resolved "https://registry.yarnpkg.com/@sentry/cli-darwin/-/cli-darwin-2.42.2.tgz#a32a4f226e717122b37d9969e8d4d0e14779f720"
69626962
integrity sha512-GtJSuxER7Vrp1IpxdUyRZzcckzMnb4N5KTW7sbTwUiwqARRo+wxS+gczYrS8tdgtmXs5XYhzhs+t4d52ITHMIg==
69636963

6964-
6965-
version "2.46.0"
6966-
resolved "https://registry.yarnpkg.com/@sentry/cli-darwin/-/cli-darwin-2.46.0.tgz#e07ff66f03e8cb6e1988b7673ae5dbd6ff957b1d"
6967-
integrity sha512-5Ll+e5KAdIk9OYiZO8aifMBRNWmNyPjSqdjaHlBC1Qfh7pE3b1zyzoHlsUazG0bv0sNrSGea8e7kF5wIO1hvyg==
6964+
6965+
version "2.49.0"
6966+
resolved "https://registry.yarnpkg.com/@sentry/cli-darwin/-/cli-darwin-2.49.0.tgz#290657e5840b360cb8ca25c8a78f8c0f15c66b03"
6967+
integrity sha512-bgowyDeFuXbjkGq1ZKqcWhmzgfBe7oKIXYWJOOps4+32QfG+YsrdNnottHS01td3bzrJq0QnHj8H12fA81DqrA==
6968+
6969+
6970+
version "2.50.0"
6971+
resolved "https://registry.yarnpkg.com/@sentry/cli-darwin/-/cli-darwin-2.50.0.tgz#0fec0ece84afe37b33464ccd514367fc95d507f3"
6972+
integrity sha512-Aj+cLBZ0dCw+pdUxvJ1U71PnKh2YjvpzLN9h1ZTe8UI3FqmkKkSH/J8mN/5qmR7qUHjDcm2l+wfgVUaaP8CWbA==
69686973

69696974
69706975
version "2.42.2"
69716976
resolved "https://registry.yarnpkg.com/@sentry/cli-linux-arm64/-/cli-linux-arm64-2.42.2.tgz#1c06c83ff21f51ec23acf5be3b1f8c7553bf86b1"
69726977
integrity sha512-BOxzI7sgEU5Dhq3o4SblFXdE9zScpz6EXc5Zwr1UDZvzgXZGosUtKVc7d1LmkrHP8Q2o18HcDWtF3WvJRb5Zpw==
69736978

6974-
6975-
version "2.46.0"
6976-
resolved "https://registry.yarnpkg.com/@sentry/cli-linux-arm64/-/cli-linux-arm64-2.46.0.tgz#d5b27e5813e7b3add65c9e3dbdd75a8bea4ef324"
6977-
integrity sha512-OEJN8yAjI9y5B4telyqzu27Hi3+S4T8VxZCqJz1+z2Mp0Q/MZ622AahVPpcrVq/5bxrnlZR16+lKh8L1QwNFPg==
6979+
6980+
version "2.49.0"
6981+
resolved "https://registry.yarnpkg.com/@sentry/cli-linux-arm64/-/cli-linux-arm64-2.49.0.tgz#a732004d7131f7e7b44f6a64abdccc36efb35d52"
6982+
integrity sha512-dqxsDUd76aDm03fUwUOs5BR7RHLpSb2EH/B1hlWm0mFvo9uY907XxW9wDFx/qDpCdmpC0aF+lF/lOBOrG9B5Fg==
6983+
6984+
6985+
version "2.50.0"
6986+
resolved "https://registry.yarnpkg.com/@sentry/cli-linux-arm64/-/cli-linux-arm64-2.50.0.tgz#bbafacf82766d45ff05434cd7cabbda7005d1efd"
6987+
integrity sha512-p6hIh4Bb87qBfEz9w5dxEPAohIKcw68qoy5VUTx+cCanO8uXNWWsT78xtUNFRscW9zc6MxQMSITTWaCEIKvxRA==
69786988

69796989
69806990
version "2.42.2"
69816991
resolved "https://registry.yarnpkg.com/@sentry/cli-linux-arm/-/cli-linux-arm-2.42.2.tgz#00cadc359ae3c051efb3e63873c033c61dbd1ca1"
69826992
integrity sha512-7udCw+YL9lwq+9eL3WLspvnuG+k5Icg92YE7zsteTzWLwgPVzaxeZD2f8hwhsu+wmL+jNqbpCRmktPteh3i2mg==
69836993

6984-
6985-
version "2.46.0"
6986-
resolved "https://registry.yarnpkg.com/@sentry/cli-linux-arm/-/cli-linux-arm-2.46.0.tgz#d2a0f21cd208ef8e844bc5e565b337640d125441"
6987-
integrity sha512-WRrLNq/TEX/TNJkGqq6Ad0tGyapd5dwlxtsPbVBrIdryuL1mA7VCBoaHBr3kcwJLsgBHFH0lmkMee2ubNZZdkg==
6994+
6995+
version "2.49.0"
6996+
resolved "https://registry.yarnpkg.com/@sentry/cli-linux-arm/-/cli-linux-arm-2.49.0.tgz#73719561510df3369e05e9a4898b4e43b8753e4c"
6997+
integrity sha512-RBDIjIGmNsFw+a6vAt6m3D7ROKsMEB9i3u+UuIRxk0/DyHTcfVWxnK/ScPXGILM6PxQ2XOBfOKad0mmiDHBzZA==
6998+
6999+
7000+
version "2.50.0"
7001+
resolved "https://registry.yarnpkg.com/@sentry/cli-linux-arm/-/cli-linux-arm-2.50.0.tgz#e1fed09b94c508db9de5353d8305828b0a3551e9"
7002+
integrity sha512-SGPAFwOY2of2C+RUBJcxMN2JXikVFEk8ypYOsQTEvV/48cLejcO/O2mHIj/YKgIkrfn3t7LlqdK6g75lkz+F8Q==
69887003

69897004
69907005
version "2.42.2"
69917006
resolved "https://registry.yarnpkg.com/@sentry/cli-linux-i686/-/cli-linux-i686-2.42.2.tgz#3b817b715dd806c20dfbffd539725ad8089c310a"
69927007
integrity sha512-Sw/dQp5ZPvKnq3/y7wIJyxTUJYPGoTX/YeMbDs8BzDlu9to2LWV3K3r7hE7W1Lpbaw4tSquUHiQjP5QHCOS7aQ==
69937008

6994-
6995-
version "2.46.0"
6996-
resolved "https://registry.yarnpkg.com/@sentry/cli-linux-i686/-/cli-linux-i686-2.46.0.tgz#73368ebe30236c8647caec420f717a7f45410f29"
6997-
integrity sha512-xko3/BVa4LX8EmRxVOCipV+PwfcK5Xs8lP6lgF+7NeuAHMNL4DqF6iV9rrN8gkGUHCUI9RXSve37uuZnFy55+Q==
7009+
7010+
version "2.49.0"
7011+
resolved "https://registry.yarnpkg.com/@sentry/cli-linux-i686/-/cli-linux-i686-2.49.0.tgz#8d1bb1378251a3aa995cc4b56bd352fa12a84b66"
7012+
integrity sha512-gDAd5/vJbEhd4Waud0Cd8ZRqLEagDlOvWwNH3KB694EiHJUwzRSiTA1YUVMYGI8Z9UyEA1sKxARwm2Trv99BxA==
7013+
7014+
7015+
version "2.50.0"
7016+
resolved "https://registry.yarnpkg.com/@sentry/cli-linux-i686/-/cli-linux-i686-2.50.0.tgz#95f0eb65bdde4c33e492830ae4ac207b60494f8e"
7017+
integrity sha512-umhGmbiCUG7MvjTm8lXFmFxQjyTVtYakilBwPTVzRELmNKxxhfKRxwSSA+hUKetAUzNd8fJx8K7yqdw+qRA7Pg==
69987018

69997019
70007020
version "2.42.2"
70017021
resolved "https://registry.yarnpkg.com/@sentry/cli-linux-x64/-/cli-linux-x64-2.42.2.tgz#ddf906bc3071cc79ce6e633eddcb76bb9068e688"
70027022
integrity sha512-mU4zUspAal6TIwlNLBV5oq6yYqiENnCWSxtSQVzWs0Jyq97wtqGNG9U+QrnwjJZ+ta/hvye9fvL2X25D/RxHQw==
70037023

7004-
"@sentry/cli-linux-x64@2.46.0":
7005-
version "2.46.0"
7006-
resolved "https://registry.yarnpkg.com/@sentry/cli-linux-x64/-/cli-linux-x64-2.46.0.tgz#49da3dfd873e0e72abef968e1c213b9397e5d70e"
7007-
integrity sha512-hJ1g5UEboYcOuRia96LxjJ0jhnmk8EWLDvlGnXLnYHkwy3ree/L7sNgdp/QsY8Z4j2PGO5f22Va+UDhSjhzlfQ==
7024+
"@sentry/cli-linux-x64@2.49.0":
7025+
version "2.49.0"
7026+
resolved "https://registry.yarnpkg.com/@sentry/cli-linux-x64/-/cli-linux-x64-2.49.0.tgz#7bf58fb7005c89fdde4e1262d5ed35e23065aceb"
7027+
integrity sha512-mbohGvPNhHjUciYNXzkt9TYUebTmxeAp9v9JfLSb/Soz6fubKwEHhpRJuz1zASxVWIR4PuqkePchqN5zhcLC0A==
70087028

7009-
7010-
version "2.46.0"
7011-
resolved "https://registry.yarnpkg.com/@sentry/cli-win32-arm64/-/cli-win32-arm64-2.46.0.tgz#4e26b254d5283eb114ac916ac504283a30b2ecdb"
7012-
integrity sha512-mN7cpPoCv2VExFRGHt+IoK11yx4pM4ADZQGEso5BAUZ5duViXB2WrAXCLd8DrwMnP0OE978a7N8OtzsFqjkbNA==
7029+
7030+
version "2.50.0"
7031+
resolved "https://registry.yarnpkg.com/@sentry/cli-linux-x64/-/cli-linux-x64-2.50.0.tgz#5266b6b8660e6b72688331b7c702e9d1ca6413ed"
7032+
integrity sha512-ugIIx9+wUmguxOUe9ZVacvdCffZwqtFSKwpJ06Nqes0XfL4ZER4Qlq3/miCZ8m150C4xK5ym/QCwB41ffBqI4g==
7033+
7034+
7035+
version "2.49.0"
7036+
resolved "https://registry.yarnpkg.com/@sentry/cli-win32-arm64/-/cli-win32-arm64-2.49.0.tgz#2bf6dd911acbe3ddb02eec0afb4301bb8fb25b53"
7037+
integrity sha512-3zwvsp61EPpSuGpGdXY4JelVJmNEjoj4vn5m6EFoOtk7OUI5/VFqqR4wchjy9Hjm3Eh6MB5K+KTKXs4W2p18ng==
7038+
7039+
7040+
version "2.50.0"
7041+
resolved "https://registry.yarnpkg.com/@sentry/cli-win32-arm64/-/cli-win32-arm64-2.50.0.tgz#663d75fea42b853940c6faacf7ee76a16b449654"
7042+
integrity sha512-fMyBSKLrVHY9944t8oTpul+6osyQeuN8GGGP3diDxGQpynYL+vhcHZIpXFRH398+3kedG/IFoY7EwGgIEqWzmw==
70137043

70147044
70157045
version "2.42.2"
70167046
resolved "https://registry.yarnpkg.com/@sentry/cli-win32-i686/-/cli-win32-i686-2.42.2.tgz#9036085c7c6ce455ad45fda411c55ff39c06eb95"
70177047
integrity sha512-iHvFHPGqgJMNqXJoQpqttfsv2GI3cGodeTq4aoVLU/BT3+hXzbV0x1VpvvEhncJkDgDicJpFLM8sEPHb3b8abw==
70187048

7019-
7020-
version "2.46.0"
7021-
resolved "https://registry.yarnpkg.com/@sentry/cli-win32-i686/-/cli-win32-i686-2.46.0.tgz#72f7c0a611f17b7e5b34e2b47309d165195a8276"
7022-
integrity sha512-6F73AUE3lm71BISUO19OmlnkFD5WVe4/wA1YivtLZTc1RU3eUYJLYxhDfaH3P77+ycDppQ2yCgemLRaA4A8mNQ==
7049+
7050+
version "2.49.0"
7051+
resolved "https://registry.yarnpkg.com/@sentry/cli-win32-i686/-/cli-win32-i686-2.49.0.tgz#32e31472ae6c5f69e538a4061d651937fcb8f14a"
7052+
integrity sha512-2oWaNl6z0BaOCAjM1Jxequfgjod3XO6wothxow4kA8e9+43JLhgarSdpwJPgQjcVyxjygwQ3/jKPdUFh0qNOmg==
7053+
7054+
7055+
version "2.50.0"
7056+
resolved "https://registry.yarnpkg.com/@sentry/cli-win32-i686/-/cli-win32-i686-2.50.0.tgz#96813ca970f35a839d7f817534ac556bc1df1567"
7057+
integrity sha512-VbC+l2Y2kB7Lsun2c8t7ZGwmljmXnyncZLW9PjdEyJSTAJ9GnEnSvyFSPXNLV/eHJnfQffzU7QTjU8vkQ7XMYg==
70237058

70247059
70257060
version "2.42.2"
70267061
resolved "https://registry.yarnpkg.com/@sentry/cli-win32-x64/-/cli-win32-x64-2.42.2.tgz#7d6464b63f32c9f97fff428f246b1f039b402233"
70277062
integrity sha512-vPPGHjYoaGmfrU7xhfFxG7qlTBacroz5NdT+0FmDn6692D8IvpNXl1K+eV3Kag44ipJBBeR8g1HRJyx/F/9ACw==
70287063

7029-
7030-
version "2.46.0"
7031-
resolved "https://registry.yarnpkg.com/@sentry/cli-win32-x64/-/cli-win32-x64-2.46.0.tgz#8cfd438ec365b0ee925d9724a24b533b4cb75587"
7032-
integrity sha512-yuGVcfepnNL84LGA0GjHzdMIcOzMe0bjPhq/rwPsPN+zu11N+nPR2wV2Bum4U0eQdqYH3iAlMdL5/BEQfuLJww==
7064+
7065+
version "2.49.0"
7066+
resolved "https://registry.yarnpkg.com/@sentry/cli-win32-x64/-/cli-win32-x64-2.49.0.tgz#86aab38cb41f885914d7c99ceaab7b6ce52c72c6"
7067+
integrity sha512-dR4ulyrA6ZT7x7cg4Rwm0tcHf4TZz5QO6t1W1jX6uJ9n/U0bOSqSFZHNf/RryiUzQE1g8LBthOYyKGMkET6T8w==
7068+
7069+
7070+
version "2.50.0"
7071+
resolved "https://registry.yarnpkg.com/@sentry/cli-win32-x64/-/cli-win32-x64-2.50.0.tgz#9f644efed8cb75943078a0ca4e414fa21dda6280"
7072+
integrity sha512-nMktyF93NtQUOViAAKHpHSWACOGjOkKjiewi4pD6W3sWllFiPPyt15XoyApqWwnICDRQu2DI5vnil4ck6/k7mw==
70337073

70347074
70357075
version "2.42.2"
@@ -7050,25 +7090,25 @@
70507090
"@sentry/cli-win32-i686" "2.42.2"
70517091
"@sentry/cli-win32-x64" "2.42.2"
70527092

7053-
"@sentry/cli@^2.36.1", "@sentry/cli@^2.46.0":
7054-
version "2.46.0"
7055-
resolved "https://registry.yarnpkg.com/@sentry/cli/-/cli-2.46.0.tgz#790864874ea04f804053aa85dc94501b2cc321bb"
7056-
integrity sha512-nqoPl7UCr446QFkylrsRrUXF51x8Z9dGquyf4jaQU+OzbOJMqclnYEvU6iwbwvaw3tu/2DnoZE/Og+Nq1h63sA==
7093+
"@sentry/cli@^2.36.1", "@sentry/cli@^2.46.0", "@sentry/cli@^2.50.0":
7094+
version "2.50.0"
7095+
resolved "https://registry.yarnpkg.com/@sentry/cli/-/cli-2.50.0.tgz#7e2298bea9a2bb50126bfb24116ae98199bc1f6f"
7096+
integrity sha512-OHRRQPUNjBpzOT6arNhxXQ71DKs5jSziCfDzmEGwAs+K8J/I1QxnvJkto88HbXE54oiWhSEJwL0pvcowFXyVbA==
70577097
dependencies:
70587098
https-proxy-agent "^5.0.0"
70597099
node-fetch "^2.6.7"
70607100
progress "^2.0.3"
70617101
proxy-from-env "^1.1.0"
70627102
which "^2.0.2"
70637103
optionalDependencies:
7064-
"@sentry/cli-darwin" "2.46.0"
7065-
"@sentry/cli-linux-arm" "2.46.0"
7066-
"@sentry/cli-linux-arm64" "2.46.0"
7067-
"@sentry/cli-linux-i686" "2.46.0"
7068-
"@sentry/cli-linux-x64" "2.46.0"
7069-
"@sentry/cli-win32-arm64" "2.46.0"
7070-
"@sentry/cli-win32-i686" "2.46.0"
7071-
"@sentry/cli-win32-x64" "2.46.0"
7104+
"@sentry/cli-darwin" "2.50.0"
7105+
"@sentry/cli-linux-arm" "2.50.0"
7106+
"@sentry/cli-linux-arm64" "2.50.0"
7107+
"@sentry/cli-linux-i686" "2.50.0"
7108+
"@sentry/cli-linux-x64" "2.50.0"
7109+
"@sentry/cli-win32-arm64" "2.50.0"
7110+
"@sentry/cli-win32-i686" "2.50.0"
7111+
"@sentry/cli-win32-x64" "2.50.0"
70727112

70737113
"@sentry/rollup-plugin@^3.5.0":
70747114
version "3.5.0"

0 commit comments

Comments
 (0)