Skip to content

Possibility to hide error logs #172

@VarPDev

Description

@VarPDev

Motivation

Why is this feature required? What problems does it solve?

When I use the library on server application or backend api and an error occurs, the error log in the console (both locally and in Azure) cannot be collapsed.
The error is always a very long object, which means that if I added logs before the call, I cannot see them because the console has a line limit.

Proposed solution

An ideal solution for the above problems.

Be able to pass a parameter when creating the client to hide error logs. Or even better, be able to choose this for each individual method.

Additional context

Add any other context, screenshots, or reference links about the feature request here.

error example (I hided token and some keys)

th status code 400
at settle(C: \Users\ admin3_idm\ Downloads\ speck
	export\ node_modules\.pnpm\ axios @1 .11 .0\ node_modules\ axios\ lib\ core\ settle.js: 19: 12)
at IncomingMessage.handleStreamEnd(C: \Users\ admin3_idm\ Downloads\ speck
	export\ node_modules\.pnpm\ axios @1 .11 .0\ node_modules\ axios\ lib\ adapters\ http.js: 599: 11)
at IncomingMessage.emit(node: events: 530: 35)
at IncomingMessage.emit(node: domain: 489: 12)
at endReadableNT(node: internal / streams / readable: 1698: 12)
at processTicksAndRejections(node: internal / process / task_queues: 90: 21)
at Axios.request(C: \Users\ admin3_idm\ Downloads\ speck
	export\ node_modules\.pnpm\ axios @1 .11 .0\ node_modules\ axios\ lib\ core\ Axios.js: 45: 41)
at processTicksAndRejections(node: internal / process / task_queues: 105: 5) {
	code: 'ERR_BAD_REQUEST',
	config: {
		transitional: {
			silentJSONParsing: true,
			forcedJSONParsing: true,
			clarifyTimeoutError: false
		},
		adapter: ['xhr', 'http', 'fetch'],
		transformRequest: [
			[Function: transformRequest]
		],
		transformResponse: [
			[Function: transformResponse]
		],
		timeout: 0,
		xsrfCookieName: 'XSRF-TOKEN',
		xsrfHeaderName: 'X-XSRF-TOKEN',
		maxContentLength: 'Infinity',
		maxBodyLength: 'Infinity',
		env: {
			FormData: [Function[FormData]],
			Blob: [class Blob]
		},
		validateStatus: [Function: validateStatus],
		headers: Object[AxiosHeaders] {
			Accept: 'application/json, text/plain, */*',
			'Content-Type': 'application/json',
			'X-KC-SDKID': 'npmjs.com;@kontent-ai/management-sdk;7.11.0',
			authorization: 'bearer xxxxxxxxxxxxxx',
			'User-Agent': 'axios/1.11.0',
			'Content-Length': '2951',
			'Accept-Encoding': 'gzip, compress, deflate, br'
		},
		method: 'put',
		url: 'https://manage.kontent.ai/v2/projects/d76a3a77xxxxxxxx/items/xxxxxxxxxxx/variants/codename/de',
		data: '{"elements":[{"element":{"codename":"title"},"value":"Gratinierte Radicchio-Lasagnette mit Südtiroler Speck - Rezept"},{"element":{"codename":"seo__meta_title"},"value":"Rezept: Gratinierte Radicchio-Lasagnette mit Südtiroler Speck g.g.A."},{"element":{"codename":"seo__meta_description"},"value":"<p>Den in Streifen geschnittenen Speck und Radicchio in Butter andünsten, mit Weißweinessig ablöschen, mit Mehl bestäuben und anschließend …</p>"},{"element":{"codename":"seo__keywords"},"value":"lasagnette mit südtiroler speck g.g.a."},{"element":{"codename":"slug"},"mode":"custom","value":"gratinierte-radicchio-speck-lasagnett"},{"element":{"codename":"description"},"value":"<p>Radicchio ist nicht nur gesund, sondern in Kombi mit echtem Südtiroler Speck g.g.A. ein echtes kulinarisches Erlebnis.</p>"},{"element":{"codename":"preparation"},"value":"<p><html><head></head><body><p>Den in Streifen geschnittenen Südtiroler Speck g.g.A. und Radicchio in Butter andünsten, mit Weißweinessig ablöschen, mit Mehl bestäuben und mit der Milch aufgießen. Ca. 10 Minuten köcheln lassen und mit Salz und Muskat abschmecken. Die gekochten Teigblätter mit der Béchamelsauce und den Käseraspeln füllen und bei 180°C für ca. 40 Minuten backen.</p>\\n<p>Den in Streifen geschnittenen Südtiroler Speck g.g.A. und Radicchio in Butter andünsten, mit Weißweinessig ablöschen, mit Mehl bestäuben und mit der Milch aufgießen. Ca. 10 Minuten köcheln lassen und mit Salz und Muskat abschmecken. Die gekochten Teigblätter mit der Béchamelsauce und den Käseraspeln füllen und bei 180°C für ca. 40 Minuten backen.</p></body></html></p>"},{"element":{"codename":"author"},"value":"Südtiroler Speck Konsortium"},{"element":{"codename":"publisher"},"value":""},{"element":{"codename":"serves"},"value":4},{"element":{"codename":"serves_type"},"value":"Personen"},{"element":{"codename":"preparation_time"},"value":60},{"element":{"codename":"cooking_time"},"value":null},{"element":{"codename":"rising_time"},"value":null},{"element":{"codename":"rest_time"},"value":null},{"element":{"codename":"difficulty"},"value":[{"codename":"medium"}]},{"element":{"codename":"dish"},"value":"warme Vorspeise"},{"element":{"codename":"dish_filter"},"value":[{"id":"xxxxxxxx"}]},{"element":{"codename":"ingredients_list"},"value":"[{\\"name\\":\\"\\",\\"ingredients\\":[{\\"label\\":\\"4 Teigblätter ca. 20 x 20\\"},{\\"label\\":\\"40 g Butter\\"},{\\"label\\":\\"40 g Mehl\\"},{\\"label\\":\\"500 ml Milch\\"},{\\"label\\":\\"Muskat\\"},{\\"label\\":\\"250 g Radicchio\\"},{\\"label\\":\\"5 ml Weißweinessig\\"},{\\"label\\":\\"120 g Südtiroler Speck g.g.A.\\"},{\\"label\\":\\"80 g Stilfser Käse in Raspeln gehobelt\\"},{\\"label\\":\\"Schnittlauch als Garnitur\\"}]}]"},{"element":{"codename":"image"},"value":[{"id":"xxxxx"}]},{"element":{"codename":"og_data__og_image"},"value":[{"id":"xxxxxx"}]}]}',
		allowAbsoluteUrls: true
	},
	request: < ref * 1 > ClientRequest {
		_events: [Object: null prototype] {
			abort: [Function(anonymous)],
			aborted: [Function(anonymous)],
			connect: [Function(anonymous)],
			error: [Function(anonymous)],
			socket: [Function(anonymous)],
			timeout: [Function(anonymous)],
			finish: [Function: requestOnFinish]
		},
		_eventsCount: 7,
		_maxListeners: undefined,
		outputData: [],
		outputSize: 0,
		writable: true,
		destroyed: true,
		_last: false,
		chunkedEncoding: false,
		shouldKeepAlive: true,
		maxRequestsOnConnectionReached: false,
		_defaultKeepAlive: true,
		useChunkedEncodingByDefault: true,
		sendDate: false,
		_removedConnection: false,
		_removedContLen: false,
		_removedTE: false,
		strictContentLength: false,
		_contentLength: '2951',
		_hasBody: true,
		_trailer: '',
		finished: true,
		_headerSent: true,
		_closed: true,
		_header: 'PUT /v2/projects/xxxxxxxxx/items/xxxxxxxxx/variants/codename/de HTTP/1.1\r\n' +
			'Accept: application/json, text/plain, */*\r\n' +
			'Content-Type: application/json\r\n' +
			'X-KC-SDKID: npmjs.com;@kontent-ai/management-sdk;7.11.0\r\n' +
			'authorization: bearer xxxxxxxxxxxxxxx\r\n' +
			'User-Agent: axios/1.11.0\r\n' +
			'Content-Length: 2951\r\n' +
			'Accept-Encoding: gzip, compress, deflate, br\r\n' +
			'Host: manage.kontent.ai\r\n' +
			'Connection: keep-alive\r\n' +
			'\r\n',
		_keepAliveTimeout: 0,
		_onPendingData: [Function: nop],
		agent: Agent {
			_events: [Object: null prototype],
			_eventsCount: 2,
			_maxListeners: undefined,
			defaultPort: 443,
			protocol: 'https:',
			options: [Object: null prototype],
			requests: [Object: null prototype] {},
			sockets: [Object: null prototype] {},
			freeSockets: [Object: null prototype],
			keepAliveMsecs: 1000,
			keepAlive: true,
			maxSockets: Infinity,
			maxFreeSockets: 256,
			scheduling: 'lifo',
			maxTotalSockets: Infinity,
			totalSocketCount: 1,
			maxCachedSessions: 100,
			_sessionCache: [Object],
			[Symbol(shapeMode)]: false,
			[Symbol(kCapture)]: false
		},
		socketPath: undefined,
		method: 'PUT',
		maxHeaderSize: undefined,
		insecureHTTPParser: undefined,
		joinDuplicateHeaders: undefined,
		path: '/v2/projects/xxxxxxx/items/xxxxxxxx/variants/codename/de',
		_ended: true,
		res: IncomingMessage {
			_events: [Object],
			_readableState: [ReadableState],
			_maxListeners: undefined,
			socket: null,
			httpVersionMajor: 1,
			httpVersionMinor: 1,
			httpVersion: '1.1',
			complete: true,
			rawHeaders: [Array],
			rawTrailers: [],
			joinDuplicateHeaders: undefined,
			aborted: false,
			upgrade: false,
			url: '',
			method: null,
			statusCode: 400,
			statusMessage: 'Bad Request',
			client: [TLSSocket],
			_consuming: true,
			_dumped: false,
			req: [Circular * 1],
			_eventsCount: 4,
			responseUrl: 'https://manage.kontent.ai/v2/projects/xxxxxx/items/xxxxxxx/variants/codename/de',
			redirects: [],
			[Symbol(shapeMode)]: true,
			[Symbol(kCapture)]: false,
			[Symbol(kHeaders)]: [Object],
			[Symbol(kHeadersCount)]: 34,
			[Symbol(kTrailers)]: null,
			[Symbol(kTrailersCount)]: 0
		},
		aborted: false,
		timeoutCb: null,
		upgradeOrConnect: false,
		parser: null,
		maxHeadersCount: null,
		reusedSocket: true,
		host: 'manage.kontent.ai',
		protocol: 'https:',
		_redirectable: Writable {
			_events: [Object],
			_writableState: [WritableState],
			_maxListeners: undefined,
			_options: [Object],
			_ended: true,
			_ending: true,
			_redirectCount: 0,
			_redirects: [],
			_requestBodyLength: 2951,
			_requestBodyBuffers: [],
			_eventsCount: 3,
			_onNativeResponse: [Function(anonymous)],
			_currentRequest: [Circular * 1],
			_currentUrl: 'https://manage.kontent.ai/v2/projects/xxxxxx/items/xxxxxx/variants/codename/de',
			[Symbol(shapeMode)]: true,
			[Symbol(kCapture)]: false
		},
		[Symbol(shapeMode)]: false,
		[Symbol(kCapture)]: false,
		[Symbol(kBytesWritten)]: 0,
		[Symbol(kNeedDrain)]: false,
		[Symbol(corked)]: 0,
		[Symbol(kChunkedBuffer)]: [],
		[Symbol(kChunkedLength)]: 0,
		[Symbol(kSocket)]: TLSSocket {
			_tlsOptions: [Object],
			_secureEstablished: true,
			_securePending: false,
			_newSessionPending: false,
			_controlReleased: true,
			secureConnecting: false,
			_SNICallback: null,
			servername: 'manage.kontent.ai',
			alpnProtocol: false,
			authorized: true,
			authorizationError: null,
			encrypted: true,
			_events: [Object: null prototype],
			_eventsCount: 9,
			connecting: false,
			_hadError: false,
			_parent: null,
			_host: 'manage.kontent.ai',
			_closeAfterHandlingError: false,
			_readableState: [ReadableState],
			_writableState: [WritableState],
			allowHalfOpen: false,
			_maxListeners: undefined,
			_sockname: null,
			_pendingData: null,
			_pendingEncoding: '',
			server: undefined,
			_server: null,
			ssl: [TLSWrap],
			_requestCert: true,
			_rejectUnauthorized: true,
			timeout: 5000,
			parser: null,
			_httpMessage: null,
			[Symbol(alpncallback)]: null,
			[Symbol(res)]: [TLSWrap],
			[Symbol(verified)]: true,
			[Symbol(pendingSession)]: null,
			[Symbol(async_id_symbol)]: -1,
			[Symbol(kHandle)]: [TLSWrap],
			[Symbol(lastWriteQueueSize)]: 0,
			[Symbol(timeout)]: Timeout {
				_idleTimeout: 5000,
				_idlePrev: [TimersList],
				_idleNext: [TimersList],
				_idleStart: 4041,
				_onTimeout: [Function: bound],
				_timerArgs: undefined,
				_repeat: null,
				_destroyed: false,
				[Symbol(refed)]: false,
				[Symbol(kHasPrimitive)]: false,
				[Symbol(asyncId)]: 174,
				[Symbol(triggerId)]: 172,
				[Symbol(kAsyncContextFrame)]: undefined
			},
			[Symbol(kBuffer)]: null,
			[Symbol(kBufferCb)]: null,
			[Symbol(kBufferGen)]: null,
			[Symbol(shapeMode)]: true,
			[Symbol(kCapture)]: false,
			[Symbol(kSetNoDelay)]: false,
			[Symbol(kSetKeepAlive)]: true,
			[Symbol(kSetKeepAliveInitialDelay)]: 1,
			[Symbol(kBytesRead)]: 0,
			[Symbol(kBytesWritten)]: 0,
			[Symbol(connect - options)]: [Object]
		},
		[Symbol(kOutHeaders)]: [Object: null prototype] {
			accept: [Array],
			'content-type': [Array],
			'x-kc-sdkid': [Array],
			authorization: [Array],
			'user-agent': [Array],
			'content-length': [Array],
			'accept-encoding': [Array],
			host: [Array]
		},
		[Symbol(errored)]: null,
		[Symbol(kHighWaterMark)]: 16384,
		[Symbol(kRejectNonStandardBodyWrites)]: false,
		[Symbol(kUniqueHeaders)]: null
	},
	response: {
		status: 400,
		statusText: 'Bad Request',
		headers: Object[AxiosHeaders] {
			connection: 'keep-alive',
			'content-length': '524',
			'content-type': 'application/json; charset=utf-8',
			'request-context': 'appId=cid-v1:74c4cbc5-b55a-433a-8fa9-c5909b7039d7',
			'x-request-id': 'f90a260f130decee',
			'x-kc-backend-name': 'eu-01',
			'accept-ranges': 'bytes',
			date: 'Tue, 28 Oct 2025 14:48:53 GMT',
			'x-served-by': 'cache-ams2100086-AMS, cache-ams2100117-AMS',
			'x-cache': 'MISS, MISS',
			'x-cache-hits': '0, 0',
			'x-timer': 'S1761662934.864021,VS0,VE43',
			'strict-transport-security': 'max-age=63072000; includeSubdomains; preload',
			'x-frame-options': 'DENY',
			'x-content-type-options': 'nosniff',
			'referrer-policy': 'strict-origin',
			'alt-svc': 'h3=":443";ma=86400,h3-29=":443";ma=86400,h3-27=":443";ma=86400'
		},
		config: {
			transitional: [Object],
			adapter: [Array],
			transformRequest: [Array],
			transformResponse: [Array],
			timeout: 0,
			xsrfCookieName: 'XSRF-TOKEN',
			xsrfHeaderName: 'X-XSRF-TOKEN',
			maxContentLength: 'Infinity',
			maxBodyLength: 'Infinity',
			env: [Object],
			validateStatus: [Function: validateStatus],
			headers: [Object[AxiosHeaders]],
			method: 'put',
			url: 'https://manage.kontent.ai/v2/projects/xxxxx/items/xxxxx/variants/codename/de',
			data: '{"elements":[{"element":{"codename":"title"},"value":"Gratinierte Radicchio-Lasagnette mit Südtiroler Speck - Rezept"},{"element":{"codename":"seo__meta_title"},"value":"Rezept: Gratinierte Radicchio-Lasagnette mit Südtiroler Speck g.g.A."},{"element":{"codename":"seo__meta_description"},"value":"<p>Den in Streifen geschnittenen Speck und Radicchio in Butter andünsten, mit Weißweinessig ablöschen, mit Mehl bestäuben und anschließend …</p>"},{"element":{"codename":"seo__keywords"},"value":"lasagnette mit südtiroler speck g.g.a."},{"element":{"codename":"slug"},"mode":"custom","value":"gratinierte-radicchio-speck-lasagnett"},{"element":{"codename":"description"},"value":"<p>Radicchio ist nicht nur gesund, sondern in Kombi mit echtem Südtiroler Speck g.g.A. ein echtes kulinarisches Erlebnis.</p>"},{"element":{"codename":"preparation"},"value":"<p><html><head></head><body><p>Den in Streifen geschnittenen Südtiroler Speck g.g.A. und Radicchio in Butter andünsten, mit Weißweinessig ablöschen, mit Mehl bestäuben und mit der Milch aufgießen. Ca. 10 Minuten köcheln lassen und mit Salz und Muskat abschmecken. Die gekochten Teigblätter mit der Béchamelsauce und den Käseraspeln füllen und bei 180°C für ca. 40 Minuten backen.</p>\\n<p>Den in Streifen geschnittenen Südtiroler Speck g.g.A. und Radicchio in Butter andünsten, mit Weißweinessig ablöschen, mit Mehl bestäuben und mit der Milch aufgießen. Ca. 10 Minuten köcheln lassen und mit Salz und Muskat abschmecken. Die gekochten Teigblätter mit der Béchamelsauce und den Käseraspeln füllen und bei 180°C für ca. 40 Minuten backen.</p></body></html></p>"},{"element":{"codename":"author"},"value":"Südtiroler Speck Konsortium"},{"element":{"codename":"publisher"},"value":""},{"element":{"codename":"serves"},"value":4},{"element":{"codename":"serves_type"},"value":"Personen"},{"element":{"codename":"preparation_time"},"value":60},{"element":{"codename":"cooking_time"},"value":null},{"element":{"codename":"rising_time"},"value":null},{"element":{"codename":"rest_time"},"value":null},{"element":{"codename":"difficulty"},"value":[{"codename":"medium"}]},{"element":{"codename":"dish"},"value":"warme Vorspeise"},{"element":{"codename":"dish_filter"},"value":[{"id":"xxxxxxx"}]},{"element":{"codename":"ingredients_list"},"value":"[{\\"name\\":\\"\\",\\"ingredients\\":[{\\"label\\":\\"4 Teigblätter ca. 20 x 20\\"},{\\"label\\":\\"40 g Butter\\"},{\\"label\\":\\"40 g Mehl\\"},{\\"label\\":\\"500 ml Milch\\"},{\\"label\\":\\"Muskat\\"},{\\"label\\":\\"250 g Radicchio\\"},{\\"label\\":\\"5 ml Weißweinessig\\"},{\\"label\\":\\"120 g Südtiroler Speck g.g.A.\\"},{\\"label\\":\\"80 g Stilfser Käse in Raspeln gehobelt\\"},{\\"label\\":\\"Schnittlauch als Garnitur\\"}]}]"},{"element":{"codename":"image"},"value":[{"id":"xxxxx"}]},{"element":{"codename":"og_data__og_image"},"value":[{"id":"xxxxx"}]}]}',
			allowAbsoluteUrls: true
		},
		request: < ref * 1 > ClientRequest {
			_events: [Object: null prototype],
			_eventsCount: 7,
			_maxListeners: undefined,
			outputData: [],
			outputSize: 0,
			writable: true,
			destroyed: true,
			_last: false,
			chunkedEncoding: false,
			shouldKeepAlive: true,
			maxRequestsOnConnectionReached: false,
			_defaultKeepAlive: true,
			useChunkedEncodingByDefault: true,
			sendDate: false,
			_removedConnection: false,
			_removedContLen: false,
			_removedTE: false,
			strictContentLength: false,
			_contentLength: '2951',
			_hasBody: true,
			_trailer: '',
			finished: true,
			_headerSent: true,
			_closed: true,
			_header: 'PUT /v2/projects/xxxxxx/items/xxxxxxx/variants/codename/de HTTP/1.1\r\n' +
				'Accept: application/json, text/plain, */*\r\n' +
				'Content-Type: application/json\r\n' +
				'X-KC-SDKID: npmjs.com;@kontent-ai/management-sdk;7.11.0\r\n' +
				'authorization: bearer xxxxxxxxxx\r\n' +
				'User-Agent: axios/1.11.0\r\n' +
				'Content-Length: 2951\r\n' +
				'Accept-Encoding: gzip, compress, deflate, br\r\n' +
				'Host: manage.kontent.ai\r\n' +
				'Connection: keep-alive\r\n' +
				'\r\n',
			_keepAliveTimeout: 0,
			_onPendingData: [Function: nop],
			agent: [Agent],
			socketPath: undefined,
			method: 'PUT',
			maxHeaderSize: undefined,
			insecureHTTPParser: undefined,
			joinDuplicateHeaders: undefined,
			path: '/v2/projects/xxxxxx/items/xxxxxxx/variants/codename/de',
			_ended: true,
			res: [IncomingMessage],
			aborted: false,
			timeoutCb: null,
			upgradeOrConnect: false,
			parser: null,
			maxHeadersCount: null,
			reusedSocket: true,
			host: 'manage.kontent.ai',
			protocol: 'https:',
			_redirectable: [Writable],
			[Symbol(shapeMode)]: false,
			[Symbol(kCapture)]: false,
			[Symbol(kBytesWritten)]: 0,
			[Symbol(kNeedDrain)]: false,
			[Symbol(corked)]: 0,
			[Symbol(kChunkedBuffer)]: [],
			[Symbol(kChunkedLength)]: 0,
			[Symbol(kChunkedLength)]: 0,
			[Symbol(kSocket)]: [TLSSocket],
			[Symbol(kChunkedLength)]: 0,
			[Symbol(kSocket)]: [TLSSocket],
			[Symbol(kOutHeaders)]: [Object: null prototype],
			[Symbol(errored)]: null,
			[Symbol(kHighWaterMark)]: 16384,
			[Symbol(kRejectNonStandardBodyWrites)]: false,
			[Symbol(kUniqueHeaders)]: null
		},
		data: {
			request_id: 'f90a260f130decee',
			error_code: 5,
			message: "The provided request body is invalid. See 'validation_errors' for more information and specify a valid JSON object.",
			validation_errors: [Array]
		}
	},
	status: 400
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions