diff --git a/.github/workflows/dart.yml b/.github/workflows/dart.yml
index 8e04434..444d75a 100644
--- a/.github/workflows/dart.yml
+++ b/.github/workflows/dart.yml
@@ -36,16 +36,16 @@ jobs:
run: dart format --output=none --set-exit-if-changed .
working-directory: packages/${{ matrix.package }}
+ - name: Run build_runner
+ if: contains(fromJson('[ "kiota_abstractions", "kiota_http" ]'), matrix.package)
+ run: dart run build_runner build --delete-conflicting-outputs
+ working-directory: packages/${{ matrix.package }}
+
- name: Analyze project source
continue-on-error: true
run: dart analyze --fatal-infos
working-directory: packages/${{ matrix.package }}
- - name: Run build_runner
- if: contains(fromJson('[ "kiota_abstractions" ]'), matrix.package)
- run: dart run build_runner build --delete-conflicting-outputs
- working-directory: packages/${{ matrix.package }}
-
- name: Run tests
run: dart test
working-directory: packages/${{ matrix.package }}
diff --git a/.run/All Tests.run.xml b/.run/All Tests.run.xml
new file mode 100644
index 0000000..0e1baf4
--- /dev/null
+++ b/.run/All Tests.run.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.run/Test kiota_abstractions.run.xml b/.run/Test kiota_abstractions.run.xml
new file mode 100644
index 0000000..82c9dbe
--- /dev/null
+++ b/.run/Test kiota_abstractions.run.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.run/Test kiota_http.run.xml b/.run/Test kiota_http.run.xml
new file mode 100644
index 0000000..543ce3f
--- /dev/null
+++ b/.run/Test kiota_http.run.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.run/watch kiota_abstractions.run.xml b/.run/watch kiota_abstractions.run.xml
new file mode 100644
index 0000000..6917eea
--- /dev/null
+++ b/.run/watch kiota_abstractions.run.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.run/build_runner watch.run.xml b/.run/watch kiota_http.run.xml
similarity index 87%
rename from .run/build_runner watch.run.xml
rename to .run/watch kiota_http.run.xml
index 2ee9648..bd6d3ce 100644
--- a/.run/build_runner watch.run.xml
+++ b/.run/watch kiota_http.run.xml
@@ -1,11 +1,11 @@
-
+
-
+
diff --git a/packages/kiota_abstractions/lib/kiota_abstractions.dart b/packages/kiota_abstractions/lib/kiota_abstractions.dart
index c8834c2..e8ee35f 100644
--- a/packages/kiota_abstractions/lib/kiota_abstractions.dart
+++ b/packages/kiota_abstractions/lib/kiota_abstractions.dart
@@ -15,6 +15,7 @@ import 'package:std_uritemplate/std_uritemplate.dart';
import 'package:uuid/uuid.dart';
part 'src/api_client_builder.dart';
+part 'src/api_exception.dart';
part 'src/authentication/access_token_provider.dart';
part 'src/authentication/allowed_hosts_validator.dart';
part 'src/authentication/anonymous_authentication_provider.dart';
diff --git a/packages/kiota_abstractions/lib/src/api_exception.dart b/packages/kiota_abstractions/lib/src/api_exception.dart
index 118325a..876a966 100644
--- a/packages/kiota_abstractions/lib/src/api_exception.dart
+++ b/packages/kiota_abstractions/lib/src/api_exception.dart
@@ -8,6 +8,7 @@ class ApiException implements Exception {
this.statusCode,
this.message,
this.responseHeaders,
+ this.innerExceptions,
});
/// The HTTP status code of the response.
@@ -19,8 +20,26 @@ class ApiException implements Exception {
/// The headers of the response.
final Map>? responseHeaders;
+ /// The inner exceptions that caused this exception.
+ final Iterable