Skip to content

Commit 7918405

Browse files
[Search] Error notification alignment (elastic#77788) (elastic#78634)
* OSS error alignemnt * Adjust error messages in xpack * Add getErrorMessage * Use showError in vizualize Add original error to expression exception * Cleanup * ts, doc and i18n fixes * Fix jest tests * Fix functional test * functional test * ts * Update functional tests * Add unit tests to interceptor and timeout error * expose toasts test function * doc * typos * review 1 * Code review * doc * doc fix * visualization type fix * fix jest * Fix xpack functional test * fix xpack test * code review * delete debubg flag * Update texts by @gchaps * docs and ts Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com> Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
1 parent 9b3e54e commit 7918405

File tree

50 files changed

+849
-465
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+849
-465
lines changed

docs/development/plugins/data/public/kibana-plugin-plugins-data-public.isearchstart.md

+1
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,5 @@ export interface ISearchStart
1919
| [aggs](./kibana-plugin-plugins-data-public.isearchstart.aggs.md) | <code>AggsStart</code> | agg config sub service [AggsStart](./kibana-plugin-plugins-data-public.aggsstart.md) |
2020
| [search](./kibana-plugin-plugins-data-public.isearchstart.search.md) | <code>ISearchGeneric</code> | low level search [ISearchGeneric](./kibana-plugin-plugins-data-public.isearchgeneric.md) |
2121
| [searchSource](./kibana-plugin-plugins-data-public.isearchstart.searchsource.md) | <code>ISearchStartSearchSource</code> | high level search [ISearchStartSearchSource](./kibana-plugin-plugins-data-public.isearchstartsearchsource.md) |
22+
| [showError](./kibana-plugin-plugins-data-public.isearchstart.showerror.md) | <code>(e: Error) =&gt; void</code> | |
2223

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
2+
3+
[Home](./index.md) &gt; [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) &gt; [ISearchStart](./kibana-plugin-plugins-data-public.isearchstart.md) &gt; [showError](./kibana-plugin-plugins-data-public.isearchstart.showerror.md)
4+
5+
## ISearchStart.showError property
6+
7+
<b>Signature:</b>
8+
9+
```typescript
10+
showError: (e: Error) => void;
11+
```

docs/development/plugins/data/public/kibana-plugin-plugins-data-public.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,11 @@
1919
| [IndexPatternSelect](./kibana-plugin-plugins-data-public.indexpatternselect.md) | |
2020
| [IndexPatternsService](./kibana-plugin-plugins-data-public.indexpatternsservice.md) | |
2121
| [OptionedParamType](./kibana-plugin-plugins-data-public.optionedparamtype.md) | |
22+
| [PainlessError](./kibana-plugin-plugins-data-public.painlesserror.md) | |
2223
| [Plugin](./kibana-plugin-plugins-data-public.plugin.md) | |
23-
| [RequestTimeoutError](./kibana-plugin-plugins-data-public.requesttimeouterror.md) | Class used to signify that a request timed out. Useful for applications to conditionally handle this type of error differently than other errors. |
2424
| [SearchInterceptor](./kibana-plugin-plugins-data-public.searchinterceptor.md) | |
2525
| [SearchSource](./kibana-plugin-plugins-data-public.searchsource.md) | \* |
26+
| [SearchTimeoutError](./kibana-plugin-plugins-data-public.searchtimeouterror.md) | Request Failure - When an entire multi request fails |
2627
| [TimeHistory](./kibana-plugin-plugins-data-public.timehistory.md) | |
2728

2829
## Enumerations
@@ -35,6 +36,7 @@
3536
| [METRIC\_TYPES](./kibana-plugin-plugins-data-public.metric_types.md) | |
3637
| [QuerySuggestionTypes](./kibana-plugin-plugins-data-public.querysuggestiontypes.md) | |
3738
| [SortDirection](./kibana-plugin-plugins-data-public.sortdirection.md) | |
39+
| [TimeoutErrorMode](./kibana-plugin-plugins-data-public.timeouterrormode.md) | |
3840

3941
## Functions
4042

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
2+
3+
[Home](./index.md) &gt; [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) &gt; [PainlessError](./kibana-plugin-plugins-data-public.painlesserror.md) &gt; [(constructor)](./kibana-plugin-plugins-data-public.painlesserror._constructor_.md)
4+
5+
## PainlessError.(constructor)
6+
7+
Constructs a new instance of the `PainlessError` class
8+
9+
<b>Signature:</b>
10+
11+
```typescript
12+
constructor(err: EsError, request: IKibanaSearchRequest);
13+
```
14+
15+
## Parameters
16+
17+
| Parameter | Type | Description |
18+
| --- | --- | --- |
19+
| err | <code>EsError</code> | |
20+
| request | <code>IKibanaSearchRequest</code> | |
21+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
2+
3+
[Home](./index.md) &gt; [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) &gt; [PainlessError](./kibana-plugin-plugins-data-public.painlesserror.md) &gt; [getErrorMessage](./kibana-plugin-plugins-data-public.painlesserror.geterrormessage.md)
4+
5+
## PainlessError.getErrorMessage() method
6+
7+
<b>Signature:</b>
8+
9+
```typescript
10+
getErrorMessage(application: ApplicationStart): JSX.Element;
11+
```
12+
13+
## Parameters
14+
15+
| Parameter | Type | Description |
16+
| --- | --- | --- |
17+
| application | <code>ApplicationStart</code> | |
18+
19+
<b>Returns:</b>
20+
21+
`JSX.Element`
22+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
2+
3+
[Home](./index.md) &gt; [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) &gt; [PainlessError](./kibana-plugin-plugins-data-public.painlesserror.md)
4+
5+
## PainlessError class
6+
7+
<b>Signature:</b>
8+
9+
```typescript
10+
export declare class PainlessError extends KbnError
11+
```
12+
13+
## Constructors
14+
15+
| Constructor | Modifiers | Description |
16+
| --- | --- | --- |
17+
| [(constructor)(err, request)](./kibana-plugin-plugins-data-public.painlesserror._constructor_.md) | | Constructs a new instance of the <code>PainlessError</code> class |
18+
19+
## Properties
20+
21+
| Property | Modifiers | Type | Description |
22+
| --- | --- | --- | --- |
23+
| [painlessStack](./kibana-plugin-plugins-data-public.painlesserror.painlessstack.md) | | <code>string</code> | |
24+
25+
## Methods
26+
27+
| Method | Modifiers | Description |
28+
| --- | --- | --- |
29+
| [getErrorMessage(application)](./kibana-plugin-plugins-data-public.painlesserror.geterrormessage.md) | | |
30+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
2+
3+
[Home](./index.md) &gt; [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) &gt; [PainlessError](./kibana-plugin-plugins-data-public.painlesserror.md) &gt; [painlessStack](./kibana-plugin-plugins-data-public.painlesserror.painlessstack.md)
4+
5+
## PainlessError.painlessStack property
6+
7+
<b>Signature:</b>
8+
9+
```typescript
10+
painlessStack?: string;
11+
```

docs/development/plugins/data/public/kibana-plugin-plugins-data-public.requesttimeouterror._constructor_.md

-20
This file was deleted.

docs/development/plugins/data/public/kibana-plugin-plugins-data-public.requesttimeouterror.md

-20
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
2+
3+
[Home](./index.md) &gt; [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) &gt; [SearchInterceptor](./kibana-plugin-plugins-data-public.searchinterceptor.md) &gt; [getTimeoutMode](./kibana-plugin-plugins-data-public.searchinterceptor.gettimeoutmode.md)
4+
5+
## SearchInterceptor.getTimeoutMode() method
6+
7+
<b>Signature:</b>
8+
9+
```typescript
10+
protected getTimeoutMode(): TimeoutErrorMode;
11+
```
12+
<b>Returns:</b>
13+
14+
`TimeoutErrorMode`
15+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
2+
3+
[Home](./index.md) &gt; [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) &gt; [SearchInterceptor](./kibana-plugin-plugins-data-public.searchinterceptor.md) &gt; [handleSearchError](./kibana-plugin-plugins-data-public.searchinterceptor.handlesearcherror.md)
4+
5+
## SearchInterceptor.handleSearchError() method
6+
7+
<b>Signature:</b>
8+
9+
```typescript
10+
protected handleSearchError(e: any, request: IKibanaSearchRequest, timeoutSignal: AbortSignal, appAbortSignal?: AbortSignal): Error;
11+
```
12+
13+
## Parameters
14+
15+
| Parameter | Type | Description |
16+
| --- | --- | --- |
17+
| e | <code>any</code> | |
18+
| request | <code>IKibanaSearchRequest</code> | |
19+
| timeoutSignal | <code>AbortSignal</code> | |
20+
| appAbortSignal | <code>AbortSignal</code> | |
21+
22+
<b>Returns:</b>
23+
24+
`Error`
25+

docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptor.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,13 @@ export declare class SearchInterceptor
2121
| Property | Modifiers | Type | Description |
2222
| --- | --- | --- | --- |
2323
| [deps](./kibana-plugin-plugins-data-public.searchinterceptor.deps.md) | | <code>SearchInterceptorDeps</code> | |
24-
| [showTimeoutError](./kibana-plugin-plugins-data-public.searchinterceptor.showtimeouterror.md) | | <code>((e: Error) =&gt; void) &amp; import(&quot;lodash&quot;).Cancelable</code> | |
2524

2625
## Methods
2726

2827
| Method | Modifiers | Description |
2928
| --- | --- | --- |
29+
| [getTimeoutMode()](./kibana-plugin-plugins-data-public.searchinterceptor.gettimeoutmode.md) | | |
30+
| [handleSearchError(e, request, timeoutSignal, appAbortSignal)](./kibana-plugin-plugins-data-public.searchinterceptor.handlesearcherror.md) | | |
3031
| [search(request, options)](./kibana-plugin-plugins-data-public.searchinterceptor.search.md) | | Searches using the given <code>search</code> method. Overrides the <code>AbortSignal</code> with one that will abort either when <code>cancelPending</code> is called, when the request times out, or when the original <code>AbortSignal</code> is aborted. Updates <code>pendingCount$</code> when the request is started/finalized. |
32+
| [showError(e)](./kibana-plugin-plugins-data-public.searchinterceptor.showerror.md) | | |
3133

docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchinterceptor.search.md

+4-2
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,19 @@ Searches using the given `search` method. Overrides the `AbortSignal` with one t
99
<b>Signature:</b>
1010

1111
```typescript
12-
search(request: IEsSearchRequest, options?: ISearchOptions): Observable<IKibanaSearchResponse>;
12+
search(request: IKibanaSearchRequest, options?: ISearchOptions): Observable<IKibanaSearchResponse>;
1313
```
1414

1515
## Parameters
1616

1717
| Parameter | Type | Description |
1818
| --- | --- | --- |
19-
| request | <code>IEsSearchRequest</code> | |
19+
| request | <code>IKibanaSearchRequest</code> | |
2020
| options | <code>ISearchOptions</code> | |
2121

2222
<b>Returns:</b>
2323

2424
`Observable<IKibanaSearchResponse>`
2525

26+
`Observalbe` emitting the search response or an error.
27+
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,22 @@
11
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
22

3-
[Home](./index.md) &gt; [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) &gt; [SearchInterceptor](./kibana-plugin-plugins-data-public.searchinterceptor.md) &gt; [showTimeoutError](./kibana-plugin-plugins-data-public.searchinterceptor.showtimeouterror.md)
3+
[Home](./index.md) &gt; [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) &gt; [SearchInterceptor](./kibana-plugin-plugins-data-public.searchinterceptor.md) &gt; [showError](./kibana-plugin-plugins-data-public.searchinterceptor.showerror.md)
44

5-
## SearchInterceptor.showTimeoutError property
5+
## SearchInterceptor.showError() method
66

77
<b>Signature:</b>
88

99
```typescript
10-
protected showTimeoutError: ((e: Error) => void) & import("lodash").Cancelable;
10+
showError(e: Error): void;
1111
```
12+
13+
## Parameters
14+
15+
| Parameter | Type | Description |
16+
| --- | --- | --- |
17+
| e | <code>Error</code> | |
18+
19+
<b>Returns:</b>
20+
21+
`void`
22+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
2+
3+
[Home](./index.md) &gt; [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) &gt; [SearchTimeoutError](./kibana-plugin-plugins-data-public.searchtimeouterror.md) &gt; [(constructor)](./kibana-plugin-plugins-data-public.searchtimeouterror._constructor_.md)
4+
5+
## SearchTimeoutError.(constructor)
6+
7+
Constructs a new instance of the `SearchTimeoutError` class
8+
9+
<b>Signature:</b>
10+
11+
```typescript
12+
constructor(err: Error, mode: TimeoutErrorMode);
13+
```
14+
15+
## Parameters
16+
17+
| Parameter | Type | Description |
18+
| --- | --- | --- |
19+
| err | <code>Error</code> | |
20+
| mode | <code>TimeoutErrorMode</code> | |
21+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
2+
3+
[Home](./index.md) &gt; [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) &gt; [SearchTimeoutError](./kibana-plugin-plugins-data-public.searchtimeouterror.md) &gt; [getErrorMessage](./kibana-plugin-plugins-data-public.searchtimeouterror.geterrormessage.md)
4+
5+
## SearchTimeoutError.getErrorMessage() method
6+
7+
<b>Signature:</b>
8+
9+
```typescript
10+
getErrorMessage(application: ApplicationStart): JSX.Element;
11+
```
12+
13+
## Parameters
14+
15+
| Parameter | Type | Description |
16+
| --- | --- | --- |
17+
| application | <code>ApplicationStart</code> | |
18+
19+
<b>Returns:</b>
20+
21+
`JSX.Element`
22+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
2+
3+
[Home](./index.md) &gt; [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) &gt; [SearchTimeoutError](./kibana-plugin-plugins-data-public.searchtimeouterror.md)
4+
5+
## SearchTimeoutError class
6+
7+
Request Failure - When an entire multi request fails
8+
9+
<b>Signature:</b>
10+
11+
```typescript
12+
export declare class SearchTimeoutError extends KbnError
13+
```
14+
15+
## Constructors
16+
17+
| Constructor | Modifiers | Description |
18+
| --- | --- | --- |
19+
| [(constructor)(err, mode)](./kibana-plugin-plugins-data-public.searchtimeouterror._constructor_.md) | | Constructs a new instance of the <code>SearchTimeoutError</code> class |
20+
21+
## Properties
22+
23+
| Property | Modifiers | Type | Description |
24+
| --- | --- | --- | --- |
25+
| [mode](./kibana-plugin-plugins-data-public.searchtimeouterror.mode.md) | | <code>TimeoutErrorMode</code> | |
26+
27+
## Methods
28+
29+
| Method | Modifiers | Description |
30+
| --- | --- | --- |
31+
| [getErrorMessage(application)](./kibana-plugin-plugins-data-public.searchtimeouterror.geterrormessage.md) | | |
32+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
2+
3+
[Home](./index.md) &gt; [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) &gt; [SearchTimeoutError](./kibana-plugin-plugins-data-public.searchtimeouterror.md) &gt; [mode](./kibana-plugin-plugins-data-public.searchtimeouterror.mode.md)
4+
5+
## SearchTimeoutError.mode property
6+
7+
<b>Signature:</b>
8+
9+
```typescript
10+
mode: TimeoutErrorMode;
11+
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
2+
3+
[Home](./index.md) &gt; [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) &gt; [TimeoutErrorMode](./kibana-plugin-plugins-data-public.timeouterrormode.md)
4+
5+
## TimeoutErrorMode enum
6+
7+
<b>Signature:</b>
8+
9+
```typescript
10+
export declare enum TimeoutErrorMode
11+
```
12+
13+
## Enumeration Members
14+
15+
| Member | Value | Description |
16+
| --- | --- | --- |
17+
| CHANGE | <code>2</code> | |
18+
| CONTACT | <code>1</code> | |
19+
| UPGRADE | <code>0</code> | |
20+

examples/search_examples/server/my_strategy.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ export const mySearchStrategyProvider = (
2525
): ISearchStrategy<IMyStrategyRequest, IMyStrategyResponse> => {
2626
const es = data.search.getSearchStrategy('es');
2727
return {
28-
search: async (context, request, options) => {
28+
search: async (context, request, options): Promise<IMyStrategyResponse> => {
2929
const esSearchRes = await es.search(context, request, options);
3030
return {
3131
...esSearchRes,

0 commit comments

Comments
 (0)