diff --git a/dwds/CHANGELOG.md b/dwds/CHANGELOG.md
index 4952058..d313bb8 100644
--- a/dwds/CHANGELOG.md
+++ b/dwds/CHANGELOG.md
@@ -1,6 +1,7 @@
-## 11.2.1-dev
+## 11.2.1
 
 - Recover from used port errors when starting debug service.
+- Update min SDK constraint to `2.13.0`.
 
 ## 11.2.0
 
diff --git a/dwds/lib/src/injected/client.js b/dwds/lib/src/injected/client.js
index fa5daca..10bd83d 100644
--- a/dwds/lib/src/injected/client.js
+++ b/dwds/lib/src/injected/client.js
@@ -1,4 +1,4 @@
-// Generated by dart2js (NullSafetyMode.unsound, no-legacy-javascript), the Dart to JavaScript compiler version: 2.14.0-374.0.dev.
+// Generated by dart2js (NullSafetyMode.unsound, no-legacy-javascript), the Dart to JavaScript compiler version: 2.15.0-19.0.dev.
 // The code supports the following hooks:
 // dartPrint(message):
 //    if this function is defined it is called instead of the Dart [print]
@@ -4169,9 +4169,10 @@
       _._disconnected = false;
       _.$ti = t0;
     },
-    GuaranteeChannel_closure: function GuaranteeChannel_closure(t0, t1) {
+    GuaranteeChannel_closure: function GuaranteeChannel_closure(t0, t1, t2) {
       this._box_0 = t0;
       this.$this = t1;
+      this.T = t2;
     },
     GuaranteeChannel__closure: function GuaranteeChannel__closure(t0) {
       this.$this = t0;
@@ -21446,7 +21447,7 @@
       if (elements1 === elements2)
         return true;
       t2 = this._elementEquality;
-      counts = P.HashMap_HashMap(t2.get$equals(), t2.get$hash(t2), t2.get$isValidKey(), t1._eval$1("_UnorderedEquality.E"), type$.dynamic);
+      counts = P.HashMap_HashMap(t1._eval$1("bool(_UnorderedEquality.E,_UnorderedEquality.E)")._as(t2.get$equals()), t1._eval$1("int(_UnorderedEquality.E)")._as(t2.get$hash(t2)), t2.get$isValidKey(), t1._eval$1("_UnorderedEquality.E"), type$.dynamic);
       for (t1 = J.get$iterator$ax(elements1), $length = 0; t1.moveNext$0();) {
         e = t1.get$current(t1);
         count = counts.$index(0, e);
@@ -23526,7 +23527,7 @@
         _this.set$__GuaranteeChannel__sink(t2);
       else
         H.throwExpression(H.LateError$fieldAI("_sink"));
-      t1 = t1._eval$1("StreamController<1>")._as(P.StreamController_StreamController(null, new K.GuaranteeChannel_closure(_box_0, _this), true, $T));
+      t1 = t1._eval$1("StreamController<1>")._as(P.StreamController_StreamController(null, new K.GuaranteeChannel_closure(_box_0, _this, $T), true, $T));
       if (_this.__GuaranteeChannel__streamController === $)
         _this.set$__GuaranteeChannel__streamController(t1);
       else
@@ -23557,7 +23558,7 @@
         return;
       t2 = this._box_0.innerStream;
       t3 = t1.get$_streamController();
-      t1.set$_guarantee_channel$_subscription(t2.listen$3$onDone$onError(t3.get$add(t3), new K.GuaranteeChannel__closure(t1), t1.get$_streamController().get$addError()));
+      t1.set$_guarantee_channel$_subscription(t2.listen$3$onDone$onError(this.T._eval$1("~(0)")._as(t3.get$add(t3)), new K.GuaranteeChannel__closure(t1), t1.get$_streamController().get$addError()));
     },
     $signature: 0
   };
diff --git a/dwds/lib/src/version.dart b/dwds/lib/src/version.dart
index b419d06..0f3cb58 100644
--- a/dwds/lib/src/version.dart
+++ b/dwds/lib/src/version.dart
@@ -1,2 +1,2 @@
 // Generated code. Do not modify.
-const packageVersion = '11.2.1-dev';
+const packageVersion = '11.2.1';
diff --git a/dwds/pubspec.yaml b/dwds/pubspec.yaml
index 013dcd4..f296ed5 100644
--- a/dwds/pubspec.yaml
+++ b/dwds/pubspec.yaml
@@ -1,13 +1,13 @@
 name: dwds
 # Every time this changes you need to run `pub run build_runner build`.
-version: 11.2.1-dev
+version: 11.2.1
 homepage: https://github.com/dart-lang/webdev/tree/master/dwds
 description: >-
   A service that proxies between the Chrome debug protocol and the Dart VM
   service protocol.
 
 environment:
-  sdk: ">=2.13.0-144.0.dev <3.0.0"
+  sdk: ">=2.13.0 <3.0.0"
 
 dependencies:
   async: ^2.3.0
diff --git a/fixtures/_webdevSoundSmoke/pubspec.yaml b/fixtures/_webdevSoundSmoke/pubspec.yaml
index 8105d25..aa890a9 100644
--- a/fixtures/_webdevSoundSmoke/pubspec.yaml
+++ b/fixtures/_webdevSoundSmoke/pubspec.yaml
@@ -2,7 +2,7 @@
 description: A test fixture for webdev testing with sound support.
 
 environment:
-  sdk: '>=2.12.0-259.0.dev <3.0.0'
+  sdk: '>=2.13.0 <3.0.0'
 
 dev_dependencies:
   build_runner: '>=1.6.2 <3.0.0'
diff --git a/webdev/pubspec.yaml b/webdev/pubspec.yaml
index 1b21731..cfd1b01 100644
--- a/webdev/pubspec.yaml
+++ b/webdev/pubspec.yaml
@@ -50,5 +50,9 @@
   test_process: ^2.0.2
   webdriver: ^3.0.0
 
+dependency_overrides:
+  dwds:
+    path: ../dwds
+
 executables:
   webdev:
