adds detailed error message to ES test connection (#35009)

* adds detailed error message to ES test connection

* changed to semicolon for consistency

* updated snapshots for elasticsearch settings test
This commit is contained in:
Carlos Garcia 2026-01-27 22:46:53 +01:00 committed by GitHub
parent fb22f56635
commit 320b3b411f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 10 additions and 5 deletions

View file

@ -277,7 +277,7 @@ exports[`components/ElasticSearchSettings should match snapshot, disabled 1`] =
/>
}
id="testConfig"
includeDetailedError={false}
includeDetailedError={true}
requestAction={[Function]}
saveNeeded={false}
showSuccessMessage={true}
@ -771,7 +771,7 @@ exports[`components/ElasticSearchSettings should match snapshot, enabled 1`] = `
/>
}
id="testConfig"
includeDetailedError={false}
includeDetailedError={true}
requestAction={[Function]}
saveNeeded={false}
showSuccessMessage={true}

View file

@ -180,7 +180,7 @@ export default class ElasticsearchSettings extends OLDAdminSettings<Props, State
return this.state.canSave;
};
doTestConfig = (success: () => void, error: (error: {message: string; detailed_message?: string}) => void): void => {
doTestConfig = (success: () => void, error: (error: {message: string; detailed_error?: string}) => void): void => {
const config = JSON.parse(JSON.stringify(this.props.config));
this.getConfigFromState(config);
@ -193,7 +193,7 @@ export default class ElasticsearchSettings extends OLDAdminSettings<Props, State
});
success();
},
(err: {message: string; detailed_message?: string}) => {
(err: {message: string; detailed_error?: string}) => {
this.setState({
configTested: false,
canSave: false,
@ -412,6 +412,7 @@ export default class ElasticsearchSettings extends OLDAdminSettings<Props, State
<RequestButton
id='testConfig'
requestAction={this.doTestConfig}
includeDetailedError={true}
helpText={<FormattedMessage {...messages.testHelpText}/>}
buttonText={<FormattedMessage {...messages.elasticsearch_test_button}/>}
successMessage={defineMessage({

View file

@ -380,7 +380,7 @@ export class SchemaAdminSettings extends React.PureComponent<SchemaAdminSettings
return (<></>);
}
const handleRequestAction = (success: () => void, error: (error: {message: string}) => void) => {
const handleRequestAction = (success: () => void, error: (error: {message: string; detailed_error?: string}) => void) => {
if (!setting.skipSaveNeeded && this.state.saveNeeded !== false) {
error({
message: this.props.intl.formatMessage({id: 'admin_settings.save_unsaved_changes', defaultMessage: 'Please save unsaved changes first'}),

View file

@ -4500,6 +4500,7 @@ export default class Client4 {
message: msg,
server_error_id: data.id,
status_code: data.status_code,
detailed_error: data.detailed_error,
url,
});
};
@ -4896,6 +4897,7 @@ export class ClientError extends Error implements ServerError {
url?: string;
server_error_id?: string;
status_code?: number;
detailed_error?: string;
constructor(baseUrl: string, data: ServerError, cause?: any) {
super(data.message + ': ' + cleanUrlForLogging(baseUrl, data.url || ''), {cause});
@ -4904,6 +4906,7 @@ export class ClientError extends Error implements ServerError {
this.url = data.url;
this.server_error_id = data.server_error_id;
this.status_code = data.status_code;
this.detailed_error = data.detailed_error;
// Ensure message is treated as a property of this class when object spreading. Without this,
// copying the object by using `{...error}` would not include the message.

View file

@ -6,6 +6,7 @@ export type ServerError = {
server_error_id?: string;
stack?: string;
message: string;
detailed_error?: string;
status_code?: number;
url?: string;
};