helloadhavan/github_issues huggingface dataset:
Repository: ollama/ollama
Pull request: update install.sh


Changed files:
filename: scripts/install.sh
patch: @@ -52,7 +52,7 @@ if [ -n "$NEEDS" ]; then
 fi
 
 status "Downloading ollama..."
-$SUDO curl --fail --show-error --location --progress-bar -o $TEMP_DIR/ollama "https://ollama.ai/download/ollama-linux-$ARCH"
+curl --fail --show-error --location --progress-bar -o $TEMP_DIR/ollama "https://ollama.ai/download/ollama-linux-$ARCH"
 
 status "Installing ollama to /usr/bin..."
 $SUDO install -o0 -g0 -m755 -d /usr/bin
Repository: vercel/next.js
Pull request: Turbopack: Remove beta warning

Feedback from @feedthejim:

- It's scarier than it needs to be, beta builds should be fine for most users.
- This is opt-in, so users probably aren't going to use it by accident.
- We don't tend to do this level of warning for other feature flags.

Closes PACK-5284

Changed files:
filename: packages/next/src/build/index.ts
patch: @@ -4022,10 +4022,6 @@ export default async function build(
     // Ensure we wait for lockfile patching if present
     await lockfilePatchPromise.cur
 
-    if (isTurbopack && !process.env.__NEXT_TEST_MODE) {
-      warnAboutTurbopackBuilds()
-    }
-
     // Ensure all traces are flushed before finishing the command
     await flushAllTraces()
     teardownTraceSubscriber()
@@ -4050,14 +4046,6 @@ function errorFromUnsupportedSegmentConfig(): never {
   process.exit(1)
 }
 
-function warnAboutTurbopackBuilds() {
-  Log.ready(
-    `Turbopack builds are ${bold('beta')}.\n\n` +
-      '   Please see our docs https://nextjs.org/docs/app/api-reference/turbopack for information on known differences with webpack builds.\n\n' +
-      '   Provide feedback for Turbopack builds at https://github.com/vercel/next.js/discussions/77721'
-  )
-}
-
 function getBundlerForTelemetry(isTurbopack: boolean) {
   if (isTurbopack) {
     return 'turbopack'
Repository: ollama/ollama
Pull request: update install.sh

This prevents the service from restarting too early and not detecting GPU before drivers are installed.

Fix PATH for WSL user. WSL preinstalls CUDA toolkit but it's in a non-standard path (`/usr/lib/wsl/lib`). While this is set for a normal WSL user, it's not set for the ollama user. This change sets PATH of the ollama service to the PATH of the caller

Changed files:
filename: scripts/install.sh
patch: @@ -82,6 +82,7 @@ Group=ollama
 Restart=always
 RestartSec=3
 Environment="HOME=/usr/share/ollama"
+Environment="PATH=$PATH"
 
 [Install]
 WantedBy=default.target
@@ -92,7 +93,9 @@ EOF
             status "Enabling and starting ollama service..."
             $SUDO systemctl daemon-reload
             $SUDO systemctl enable ollama
-            $SUDO systemctl restart ollama
+
+            start_service() { $SUDO systemctl restart ollama; }
+            trap start_service EXIT
             ;;
     esac
 }
@@ -114,6 +117,11 @@ check_gpu() {
     esac
 }
 
+if check_gpu nvidia-smi; then
+    status "NVIDIA GPU installed."
+    exit 0
+fi
+
 if ! check_gpu lspci && ! check_gpu lshw; then
     warning "No NVIDIA GPU detected. Ollama will run in CPU-only mode."
     exit 0
@@ -225,3 +233,6 @@ if ! lsmod | grep -q nvidia; then
 
     $SUDO modprobe nvidia
 fi
+
+
+status "NVIDIA GPU installed."
Repository: ollama/ollama
Pull request: ignore systemctl is-system-running exit code


Changed files:
filename: scripts/install.sh
patch: @@ -86,7 +86,7 @@ Environment="HOME=/usr/share/ollama"
 [Install]
 WantedBy=default.target
 EOF
-    SYSTEMCTL_RUNNING="$(systemctl is-system-running)"
+    SYSTEMCTL_RUNNING="$(systemctl is-system-running || true)"
     case $SYSTEMCTL_RUNNING in
         running|degraded)
             status "Enabling and starting ollama service..."
Repository: denoland/deno
Pull request: fix(unstable): make QuicListener yield QuicIncoming

accepting a quic incoming connection should happen outside the accept loop, since it connection-specific (e.g. one connection's backpressure shouldn't prevent another one from being accepted), and can raise exceptions that shouldn't stop the entire loop (e.g. invalid handshake)

Changed files:
filename: cli/tsc/dts/lib.deno_net.d.ts
patch: @@ -787,7 +787,7 @@ declare namespace Deno {
    * @experimental
    * @category Network
    */
-  export interface QuicListener extends AsyncIterable<QuicConn> {
+  export interface QuicListener extends AsyncIterable<QuicIncoming> {
     /** Waits for and resolves to the next incoming connection. */
     incoming(): Promise<QuicIncoming>;
 
@@ -797,7 +797,7 @@ declare namespace Deno {
     /** Stops the listener. This does not close the endpoint. */
     stop(): void;
 
-    [Symbol.asyncIterator](): AsyncIterableIterator<QuicConn>;
+    [Symbol.asyncIterator](): AsyncIterableIterator<QuicIncoming>;
 
     /** The endpoint for this listener. */
     readonly endpoint: QuicEndpoint;

filename: ext/net/03_quic.js
patch: @@ -147,8 +147,8 @@ class QuicListener {
 
   async next() {
     try {
-      const connection = await this.accept();
-      return { value: connection, done: false };
+      const incoming = await this.incoming();
+      return { value: incoming, done: false };
     } catch (error) {
       if (ObjectPrototypeIsPrototypeOf(BadResourcePrototype, error)) {
         return { value: undefined, done: true };

filename: tests/specs/run/tunnel/test.ts
patch: @@ -36,11 +36,13 @@ setTimeout(() => {
   Deno.exit(1);
 }, 5000);
 
-for await (const conn of listener) {
-  handleConnection(conn);
+for await (const incoming of listener) {
+  handleConnection(incoming);
 }
 
-async function handleConnection(conn: Deno.QuicConn) {
+async function handleConnection(incoming: Deno.QuicIncoming) {
+  const conn = await incoming.accept();
+
   {
     const { value: bi } = await conn.incomingBidirectionalStreams
       .getReader()

filename: tests/specs/run/webtransport/main.ts
patch: @@ -21,7 +21,8 @@ Deno.test("WebTransport", async () => {
   });
 
   (async () => {
-    for await (const conn of listener) {
+    for await (const incoming of listener) {
+      const conn = await incoming.accept();
       const wt = await Deno.upgradeWebTransport(conn);
 
       assertEquals(wt.url, `https://localhost:${server.addr.port}/path`);
Repository: electron/electron
Pull request: fix: gin_helper::Promise in GPUInfoManager must be destroyed before destroying Node/V8

#### Description of Change

Fixes #46433

<!--
Thank you for your Pull Request. Please provide a description above and review
the requirements below.

Contributors guide: https://github.com/electron/electron/blob/main/CONTRIBUTING.md
-->

#### Checklist
<!-- Remove items that do not apply. For completed items, change [ ] to [x]. -->

- [ ] PR description included and stakeholders cc'd
- [ ] `npm test` passes
- [ ] tests are [changed or added](https://github.com/electron/electron/blob/main/docs/development/testing.md)
- [ ] relevant API documentation, tutorials, and examples are updated and follow the [documentation style guide](https://github.com/electron/electron/blob/main/docs/development/style-guide.md)
- [ ] [PR release notes](https://github.com/electron/clerk/blob/main/README.md) describe the change in a way relevant to app developers, and are [capitalized, punctuated, and past tense](https://github.com/electron/clerk/blob/main/README.md#examples).

#### Release Notes

Notes: fix crash on application exit with pending `app.getGPUInfo` promise


Changed files:
filename: shell/browser/api/gpuinfo_manager.cc
patch: @@ -17,7 +17,9 @@
 namespace electron {
 
 GPUInfoManager* GPUInfoManager::GetInstance() {
-  return base::Singleton<GPUInfoManager>::get();
+  // will be deleted by CleanedUpAtExit::DoCleanup
+  static GPUInfoManager* instance = new GPUInfoManager();
+  return instance;
 }
 
 GPUInfoManager::GPUInfoManager()

filename: shell/browser/api/gpuinfo_manager.h
patch: @@ -11,6 +11,7 @@
 #include "content/browser/gpu/gpu_data_manager_impl.h"  // nogncheck
 #include "content/public/browser/gpu_data_manager.h"
 #include "content/public/browser/gpu_data_manager_observer.h"
+#include "shell/common/gin_helper/cleaned_up_at_exit.h"
 
 namespace gin_helper {
 template <typename T>
@@ -20,7 +21,8 @@ class Promise;
 namespace electron {
 
 // GPUInfoManager is a singleton used to manage and fetch GPUInfo
-class GPUInfoManager : private content::GpuDataManagerObserver {
+class GPUInfoManager : private content::GpuDataManagerObserver,
+                       public gin_helper::CleanedUpAtExit {
  public:
   static GPUInfoManager* GetInstance();
Repository: huggingface/transformers
Pull request: Fix deprecation warning version

# What does this PR do?

As per the title. It was a typo, all other classes are scheduled for 4.59

Changed files:
filename: src/transformers/cache_utils.py
patch: @@ -1409,7 +1409,7 @@ def is_compileable(self) -> bool:
 class OffloadedCache(DynamicCache):
     def __init__(self) -> None:
         logger.warning_once(
-            "`OffloadedCache` is deprecated and will be removed in version v4.60 "
+            "`OffloadedCache` is deprecated and will be removed in version v4.59 "
             "Use `DynamicCache(offloading=True)` instead"
         )
         super().__init__(offloading=True)
Repository: vercel/next.js
Pull request: fix: don't fail with amp config in JS

Because tsc doesn't infer string literal types in JS files

Changed files:
filename: packages/next/src/server/lib/router-utils/typegen.ts
patch: @@ -475,7 +475,7 @@ export function generateValidatorFile(
    * Validated at build-time by parsePagesSegmentConfig.
    */
   config?: {
-    amp?: boolean | 'hybrid'
+    amp?: boolean | 'hybrid' | string // necessary for JS
     maxDuration?: number
     runtime?: 'edge' | 'experimental-edge' | 'nodejs' | string // necessary unless config is exported as const
     regions?: string[]

filename: test/integration/amphtml/pages/use-amp-hook.tsx
patch: @@ -0,0 +1,8 @@
+import { useAmp } from 'next/amp'
+
+export const config = { amp: 'hybrid' }
+
+export default () => {
+  const isAmp = useAmp()
+  return `Hello ${isAmp ? 'AMP' : 'others'}`
+}

filename: test/integration/api-support/pages/api/big-parse.ts
patch: @@ -0,0 +1,13 @@
+import { NextApiRequest, NextApiResponse } from 'next'
+
+export const config = {
+  api: {
+    bodyParser: {
+      sizeLimit: '5mb',
+    },
+  },
+}
+
+export default (req: NextApiRequest, res: NextApiResponse) => {
+  res.status(200).json(req.body)
+}
Repository: vercel/next.js
Pull request: fix: possible null access

<!-- Thanks for opening a PR! Your contribution is much appreciated.
To make sure your PR is handled as smoothly as possible we request that you follow the checklist sections below.
Choose the right checklist for the change(s) that you're making:

## For Contributors

### Improving Documentation

- Run `pnpm prettier-fix` to fix formatting issues before opening the PR.
- Read the Docs Contribution Guide to ensure your contribution follows the docs guidelines: https://nextjs.org/docs/community/contribution-guide

### Adding or Updating Examples

- The "examples guidelines" are followed from our contributing doc https://github.com/vercel/next.js/blob/canary/contributing/examples/adding-examples.md
- Make sure the linting passes by running `pnpm build && pnpm lint`. See https://github.com/vercel/next.js/blob/canary/contributing/repository/linting.md

### Fixing a bug

- Related issues linked using `fixes #number`
- Tests added. See: https://github.com/vercel/next.js/blob/canary/contributing/core/testing.md#writing-tests-for-nextjs
- Errors have a helpful link attached, see https://github.com/vercel/next.js/blob/canary/contributing.md

### Adding a feature

- Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR. (A discussion must be opened, see https://github.com/vercel/next.js/discussions/new?category=ideas)
- Related issues/discussions are linked using `fixes #number`
- e2e tests added (https://github.com/vercel/next.js/blob/canary/contributing/core/testing.md#writing-tests-for-nextjs)
- Documentation added
- Telemetry added. In case of a feature if it's used or not.
- Errors have a helpful link attached, see https://github.com/vercel/next.js/blob/canary/contributing.md


## For Maintainers

- Minimal description (aim for explaining to someone not on the team to understand the PR)
- When linking to a Slack thread, you might want to share details of the conclusion
- Link both the Linear (Fixes NEXT-xxx) and the GitHub issues
- Add review comments if necessary to explain to the reviewer the logic behind a change

### What?

### Why?

### How?

Closes NEXT-
Fixes #

-->


Changed files:
filename: packages/next-codemod/transforms/next-lint-to-eslint-cli.ts
patch: @@ -484,9 +484,10 @@ function updateExistingFlatConfig(
     exportedArray.value.elements.splice(insertIndex, 0, ignoresConfig)
   } else {
     // Merge with existing ignores
-    const existingIgnoresObj =
-      exportedArray.value.elements[existingIgnoresIndex]
-    const ignoresProp = existingIgnoresObj.properties.find(
+    const existingIgnoresArr =
+      exportedArray.value.elements[existingIgnoresIndex]?.properties ?? []
+
+    const ignoresProp = existingIgnoresArr.find(
       (prop) =>
         prop.type === 'Property' &&
         prop.key &&
Repository: ggml-org/llama.cpp
Pull request: convert : avoid dequantizing mxfp4 for GPT-OSS

Follow-up to #14810.

I accidentally broke MXFP4 GPT-OSS conversion in #14810 :

```
  File "/.../llama.cpp/convert_hf_to_gguf.py", line 656, in __init__
    super().__init__(*args, **kwargs)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
  File "/.../llama.cpp/convert_hf_to_gguf.py", line 155, in __init__
    self.dequant_model()
    ~~~~~~~~~~~~~~~~~~^^
  File "/.../llama.cpp/convert_hf_to_gguf.py", line 375, in dequant_model
    raise NotImplementedError(f"Quant method is not yet supported: {quant_method!r}")
NotImplementedError: Quant method is not yet supported: 'mxfp4'
```

This PR makes the convert script avoid running `dequant_model()` for GPT-OSS when the `quant_method` of the `quantization_config` is `mxfp4`.

Tested with a `--dry-run` conversion of <https://huggingface.co/openai/gpt-oss-20b>, which no longer fails.

---

*Make sure to read the [contributing guidelines](https://github.com/ggml-org/llama.cpp/blob/master/CONTRIBUTING.md) before submitting a PR*


Changed files:
filename: convert_hf_to_gguf.py
patch: @@ -8943,6 +8943,13 @@ def set_vocab(self):
 class GptOssModel(TextModel):
     model_arch = gguf.MODEL_ARCH.GPT_OSS
 
+    # TODO: remove once MXFP4 is supported more generally
+    def dequant_model(self):
+        quant_config = self.hparams.get("quantization_config")
+        if quant_config is not None and quant_config.get("quant_method") == "mxfp4":
+            return
+        return super().dequant_model()
+
     def transform_nibble_layout(self, tensor):
         assert tensor.dtype == torch.uint8
         assert tensor.shape[-1] == 16
Repository: ollama/ollama
Pull request: exit on unknown distro


Changed files:
filename: scripts/install.sh
patch: @@ -198,16 +198,19 @@ if ! check_gpu nvidia-smi || [ -z "$(nvidia-smi | grep -o "CUDA Version: [0-9]*\
         centos|rhel) install_cuda_driver_yum 'rhel' $OS_VERSION ;;
         rocky) install_cuda_driver_yum 'rhel' $(echo $OS_VERSION | cut -c1) ;;
         fedora) install_cuda_driver_yum $OS_NAME $OS_VERSION ;;
+        amzn) install_cuda_driver_yum 'fedora' '35' ;;
         debian) install_cuda_driver_apt $OS_NAME $OS_VERSION ;;
         ubuntu) install_cuda_driver_apt $OS_NAME $(echo $OS_VERSION | sed 's/\.//') ;;
+        *) exit ;;
     esac
 fi
 
 if ! lsmod | grep -q nvidia; then
     KERNEL_RELEASE="$(uname -r)"
     case $OS_NAME in
-        centos|rhel|rocky|fedora) $SUDO $PACKAGE_MANAGER -y install kernel-devel-$KERNEL_RELEASE kernel-headers-$KERNEL_RELEASE ;;
+        centos|rhel|rocky|fedora|amzn) $SUDO $PACKAGE_MANAGER -y install kernel-devel-$KERNEL_RELEASE kernel-headers-$KERNEL_RELEASE ;;
         debian|ubuntu) $SUDO apt-get -y install linux-headers-$KERNEL_RELEASE ;;
+        *) exit ;;
     esac
 
     NVIDIA_CUDA_VERSION=$($SUDO dkms status | awk -F: '/added/ { print $1 }')
Repository: denoland/deno
Pull request: fix(ext/node): fix hang induced by maxSockets bounds

Disables `maxSockets` settings in Agent because the server doesn't properly use removeSocket to reuse it.



Changed files:
filename: ext/node/polyfills/_http_agent.mjs
patch: @@ -267,7 +267,8 @@ Agent.prototype.addRequest = function addRequest(
     setRequestSocket(this, req, socket);
     this.sockets[name].push(socket);
   } else if (
-    sockLen < this.maxSockets &&
+    // TODO(littledivy): enable maxSockets again when we use removeSocket properly
+    this.maxSockets != 0 &&
     this.totalSocketCount < this.maxTotalSockets
   ) {
     debug("call onSocket", sockLen, freeLen);
Repository: electron/electron
Pull request: perf: avoid redundant map lookup in `HidChooserContext::DeviceChanged()`

#### Description of Change

Another "don't do the same thing twice in a row" PR.

This one removes a redundant map lookup in `HidChooserContext::DeviceChanged()`.

#### Checklist

- [x] PR description included and stakeholders cc'd
- [x] `npm test` passes
- [x] [PR release notes](https://github.com/electron/clerk/blob/main/README.md) describe the change in a way relevant to app developers, and are [capitalized, punctuated, and past tense](https://github.com/electron/clerk/blob/main/README.md#examples).

#### Release Notes

Notes: none.

Changed files:
filename: shell/browser/hid/hid_chooser_context.cc
patch: @@ -274,10 +274,11 @@ void HidChooserContext::DeviceRemoved(device::mojom::HidDeviceInfoPtr device) {
 
 void HidChooserContext::DeviceChanged(device::mojom::HidDeviceInfoPtr device) {
   DCHECK(device);
-  DCHECK(devices_.contains(device->guid));
 
   // Update the device list.
-  devices_[device->guid] = device->Clone();
+  auto& mapped = devices_[device->guid];
+  DCHECK(!mapped.is_null());
+  mapped = device->Clone();
 
   // Notify all observers.
   for (auto& observer : device_observer_list_)
Repository: ollama/ollama
Pull request: update install.sh


Changed files:
filename: scripts/install.sh
patch: @@ -12,10 +12,11 @@ TEMP_DIR=$(mktemp -d)
 cleanup() { rm -rf $TEMP_DIR; }
 trap cleanup EXIT
 
-required_tools() {
+available() { command -v $1 >/dev/null; }
+require() {
     local MISSING=''
     for TOOL in $*; do
-        if ! command -v $TOOL >/dev/null; then
+        if ! available $TOOL; then
             MISSING="$MISSING $TOOL"
         fi
     done
@@ -34,24 +35,24 @@ esac
 SUDO=
 if [ "$(id -u)" -ne 0 ]; then
     # Running as root, no need for sudo
-    if ! command -v sudo >/dev/null; then
+    if ! available sudo; then
         error "This script requires superuser permissions. Please re-run as root."
     fi
 
     SUDO="sudo"
 fi
 
-MISSING_TOOLS=$(required_tools curl awk grep sed tee xargs)
-if [ -n "$MISSING_TOOLS" ]; then
+NEEDS=$(require curl awk grep sed tee xargs)
+if [ -n "$NEEDS" ]; then
     status "ERROR: The following tools are required but missing:"
-    for MISSING_TOOL in $MISSING_TOOLS; do
-        echo "  - $MISSING_TOOL"
+    for NEED in $NEEDS; do
+        echo "  - $NEED"
     done
     exit 1
 fi
 
 status "Downloading ollama..."
-$SUDO curl -fsSL -o $TEMP_DIR/ollama "https://ollama.ai/download/ollama-linux-$ARCH"
+$SUDO curl --fail --show-error --location --progress-bar -o $TEMP_DIR/ollama "https://ollama.ai/download/ollama-linux-$ARCH"
 
 status "Installing ollama to /usr/bin..."
 $SUDO install -o0 -g0 -m755 -d /usr/bin
@@ -96,15 +97,20 @@ EOF
     esac
 }
 
-if command -v systemctl >/dev/null; then
+if available systemctl; then
     configure_systemd
 fi
 
+if ! available lspci && ! available lshw; then
+    warning "Unable to detect NVIDIA GPU. Install lspci or lshw to automatically detect and install NVIDIA CUDA drivers."
+    exit 0
+fi
+
 check_gpu() {
     case $1 in
-        lspci) command -v lspci >/dev/null && lspci -d '10de:' | grep -q 'NVIDIA' || return 1 ;;
-        lshw) command -v lshw >/dev/null && $SUDO lshw -c display -numeric | grep -q 'vendor: .* \[10DE\]' || return 1 ;;
-        nvidia-smi) command -v nvidia-smi >/dev/null || return 1 ;;
+        lspci) available lspci && lspci -d '10de:' | grep -q 'NVIDIA' || return 1 ;;
+        lshw) available lshw && $SUDO lshw -c display -numeric | grep -q 'vendor: .* \[10DE\]' || return 1 ;;
+        nvidia-smi) available nvidia-smi || return 1 ;;
     esac
 }
 
@@ -178,7 +184,7 @@ OS_VERSION=$VERSION_ID
 
 PACKAGE_MANAGER=
 for PACKAGE_MANAGER in dnf yum apt-get; do
-    if command -v $PACKAGE_MANAGER >/dev/null; then
+    if available $PACKAGE_MANAGER; then
         break
     fi
 done
@@ -209,5 +215,10 @@ if ! lsmod | grep -q nvidia; then
         $SUDO dkms install $NVIDIA_CUDA_VERSION
     fi
 
+    if lsmod | grep -q nouveau; then
+        status "Removing nouveau..."
+        $SUDO rmmod nouveau
+    fi
+
     $SUDO modprobe nvidia
 fi
Repository: denoland/deno
Pull request: fix(bundle): properly display error on invalid config in watch mode

Fixes https://github.com/denoland/deno/issues/30617

Changed files:
filename: Cargo.lock
patch: @@ -3792,9 +3792,9 @@ checksum = "31ae425815400e5ed474178a7a22e275a9687086a12ca63ec793ff292d8fdae8"
 
 [[package]]
 name = "esbuild_client"
-version = "0.5.0"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50bc40f53feb0403ed37d48b7a22ebbae05a003c71a3c2a44468f4fe071b4524"
+checksum = "456b3d661f00dac26314d27da56eb41e0e43f270251fe8c53686bb1e32205863"
 dependencies = [
  "anyhow",
  "async-trait",

filename: cli/Cargo.toml
patch: @@ -120,7 +120,7 @@ dprint-plugin-json.workspace = true
 dprint-plugin-jupyter.workspace = true
 dprint-plugin-markdown.workspace = true
 dprint-plugin-typescript.workspace = true
-esbuild_client = { version = "0.5.0", features = ["serde"] }
+esbuild_client = { version = "0.6.0", features = ["serde"] }
 fancy-regex.workspace = true
 faster-hex.workspace = true
 # If you disable the default __vendored_zlib_ng feature above, you _must_ be able to link against `-lz`.

filename: cli/tools/bundle/mod.rs
patch: @@ -184,6 +184,16 @@ pub async fn bundle(
   let duration = end.duration_since(start);
 
   if bundle_flags.watch {
+    if !response.errors.is_empty() || !response.warnings.is_empty() {
+      handle_esbuild_errors_and_warnings(
+        &response,
+        &init_cwd,
+        &bundler.plugin_handler.take_deferred_resolve_errors(),
+      );
+      if !response.errors.is_empty() {
+        deno_core::anyhow::bail!("bundling failed");
+      }
+    }
     return bundle_watch(
       flags,
       bundler,
@@ -400,7 +410,8 @@ impl EsbuildBundler {
       .client
       .send_build_request(self.make_build_request())
       .await
-      .unwrap();
+      .unwrap()
+      .map_err(|e| message_to_error(&e, &self.cwd))?;
 
     Ok(response)
   }
@@ -411,14 +422,27 @@ impl EsbuildBundler {
         panic!("rebuild not supported for one-shot mode")
       }
       BundlingMode::Watch => {
-        let _response = self.client.send_rebuild_request(0).await.unwrap();
+        log::trace!("sending rebuild request");
+        let _response = self
+          .client
+          .send_rebuild_request(0)
+          .await
+          .unwrap()
+          .map_err(|e| message_to_error(&e, &self.cwd))?;
         let response = self.on_end_rx.recv().await.unwrap();
         Ok(response.into())
       }
     }
   }
 }
 
+fn message_to_error(
+  message: &esbuild_client::protocol::Message,
+  current_dir: &Path,
+) -> AnyError {
+  deno_core::anyhow::anyhow!("{}", format_message(message, current_dir))
+}
+
 // TODO(nathanwhit): MASSIVE HACK
 // See tests::specs::bundle::requires_node_builtin for why this is needed.
 // Without this hack, that test would fail with "Dynamic require of "util" is not supported"