diff --git a/libraries/base/tests/all.T b/libraries/base/tests/all.T
index d10182cb484e07f748365da1d8d3aea045eb3719..1a7ebed8aafe2a15cd5a6df361a864f291408d00 100644
--- a/libraries/base/tests/all.T
+++ b/libraries/base/tests/all.T
@@ -309,7 +309,7 @@ test('listThreads', normal, compile_and_run, [''])
 test('listThreads1', omit_ghci, compile_and_run, [''])
 test('inits1tails1', normal, compile_and_run, [''])
 test('CLC149', normal, compile, [''])
-test('AtomicModifyIORef', normal, compile_and_run, [''])
+test('AtomicModifyIORef', js_fragile(24259), compile_and_run, [''])
 test('AtomicSwapIORef', normal, compile_and_run, [''])
 test('T23454', normal, compile_fail, [''])
 test('T23687', normal, compile_and_run, [''])
diff --git a/testsuite/driver/testlib.py b/testsuite/driver/testlib.py
index bc8116a5374cac901d762bc8b2db3cb9ae88a54e..e6f3dff486ee850dc797f347efc209cf6c4fd7f1 100644
--- a/testsuite/driver/testlib.py
+++ b/testsuite/driver/testlib.py
@@ -153,6 +153,13 @@ def js_broken( bug: IssueNumber ):
     else:
         return normal;
 
+# expect occasional failures for the JS backend
+def js_fragile( bug: IssueNumber ):
+    if js_arch():
+        return fragile(bug);
+    else:
+        return normal;
+
 def expect_fail( name, opts ):
     # The compiler, testdriver, OS or platform is missing a certain
     # feature, and we don't plan to or can't fix it now or in the
diff --git a/testsuite/tests/backpack/cabal/T20509/all.T b/testsuite/tests/backpack/cabal/T20509/all.T
index b5ee1fa0cd4af357bbd5c714477fe71e1f5131e4..18443481bfbf2f32e060ee3fd2120aba63854caf 100644
--- a/testsuite/tests/backpack/cabal/T20509/all.T
+++ b/testsuite/tests/backpack/cabal/T20509/all.T
@@ -1,6 +1,7 @@
 test('T20509',
      [extra_files(['p', 'q', 'T20509.cabal', 'Setup.hs'])
      , run_timeout_multiplier(2)
+     , js_fragile(24259)
      ],
      makefile_test,
      [])
diff --git a/testsuite/tests/backpack/cabal/bkpcabal02/all.T b/testsuite/tests/backpack/cabal/bkpcabal02/all.T
index 8635e762fd350e33d03ad85bcf2959de3b487597..2b5e3e70f0f29e975a584883ab6d5b1cdbf04517 100644
--- a/testsuite/tests/backpack/cabal/bkpcabal02/all.T
+++ b/testsuite/tests/backpack/cabal/bkpcabal02/all.T
@@ -1,5 +1,6 @@
 test('bkpcabal02',
      [extra_files(['p', 'q', 'bkpcabal02.cabal', 'Setup.hs']),
-      normalise_version('bkpcabal01')],
+      normalise_version('bkpcabal01'),
+      js_fragile(24259)],
      makefile_test,
      [])
diff --git a/testsuite/tests/backpack/cabal/bkpcabal03/all.T b/testsuite/tests/backpack/cabal/bkpcabal03/all.T
index b3ad08af5d0c0e68ca36b4607f4e17f77303fd42..1c79f871b7fdbd362710a58341d65ba0a32fe0e4 100644
--- a/testsuite/tests/backpack/cabal/bkpcabal03/all.T
+++ b/testsuite/tests/backpack/cabal/bkpcabal03/all.T
@@ -1,4 +1,5 @@
 test('bkpcabal03',
-     [extra_files(['asig1', 'asig2', 'bkpcabal03.cabal.in1', 'bkpcabal03.cabal.in2', 'Setup.hs', 'Mod.hs'])],
+     [extra_files(['asig1', 'asig2', 'bkpcabal03.cabal.in1', 'bkpcabal03.cabal.in2', 'Setup.hs', 'Mod.hs']),
+      js_fragile(24259)],
      makefile_test,
      [])
diff --git a/testsuite/tests/concurrent/should_run/all.T b/testsuite/tests/concurrent/should_run/all.T
index b1c9d42daf91c9f3b8c4320ddb0a98c69edfd619..c11724ab3bce99b55dc50be591e2bb91e5552875 100644
--- a/testsuite/tests/concurrent/should_run/all.T
+++ b/testsuite/tests/concurrent/should_run/all.T
@@ -47,7 +47,7 @@ test('T3429', [ extra_run_opts('+RTS -C0.001 -RTS'),
 # times out with ghci
 test('T4030', omit_ghci, compile_and_run, ['-O'])
 
-test('throwto002', normal, compile_and_run, [''])
+test('throwto002', js_fragile(24259), compile_and_run, [''])
 test('throwto003', normal, compile_and_run, [''])
 
 test('mask001', normal, compile_and_run, [''])
diff --git a/testsuite/tests/ghc-api/downsweep/all.T b/testsuite/tests/ghc-api/downsweep/all.T
index 75de163b9e7f4306a93f250ed6759177c05a36b6..bb1c02db1338ccaa45d040cc2d2ec8cbb2c6dd0c 100644
--- a/testsuite/tests/ghc-api/downsweep/all.T
+++ b/testsuite/tests/ghc-api/downsweep/all.T
@@ -3,6 +3,7 @@ setTestOpts(when(arch('wasm32'), run_timeout_multiplier(2)))
 test('PartialDownsweep',
      [ extra_run_opts('"' + config.libdir + '"')
      , ignore_stderr
+     , js_fragile(24259)
      ],
      compile_and_run,
      ['-package ghc -package exceptions'])
diff --git a/testsuite/tests/numeric/should_run/all.T b/testsuite/tests/numeric/should_run/all.T
index 074155bb6ec8f3b9cafde3b18bac568743ee6f3c..acbca8e76582851287092779b4eb696d09de391e 100644
--- a/testsuite/tests/numeric/should_run/all.T
+++ b/testsuite/tests/numeric/should_run/all.T
@@ -79,6 +79,6 @@ test('IntegerToFloat', normal, compile_and_run, [''])
 
 test('T20291', normal, compile_and_run, [''])
 test('T22282', normal, compile_and_run, [''])
-test('T22671', normal, compile_and_run, [''])
-test('foundation', [when(js_arch(), run_timeout_multiplier(2))], compile_and_run, ['-O -package transformers'])
+test('T22671', js_fragile(24259), compile_and_run, [''])
+test('foundation', [when(js_arch(), run_timeout_multiplier(2)), js_fragile(24259)], compile_and_run, ['-O -package transformers'])
 test('T24066', normal, compile_and_run, [''])
diff --git a/testsuite/tests/rts/all.T b/testsuite/tests/rts/all.T
index cc0995b5b3151c0741fd26b1c3434058c36b9b1b..d89a9d82e599a494847a222a47ba76ac3bcfa70e 100644
--- a/testsuite/tests/rts/all.T
+++ b/testsuite/tests/rts/all.T
@@ -302,6 +302,7 @@ test('T7919', [ when(fast(), skip)
               , omit_ghci
               , req_th
               , when(platform('x86_64-unknown-linux'), fragile(22283))
+              , js_fragile(24259)
               ]
               , compile_and_run, [config.ghc_th_way_flags])