Aspose Bad request

Hello,

I’m using Aspose within the crm creatio to transform word to pdf.

It is working great when I’m using api key from a free aspose account.

Then I created an aspose real account with a CB card, created an application and get the API key.
But with these API keys, that does not work.

I have this error stack :

System.AggregateException: Une ou plusieurs erreurs se sont produites. ---> Aspose.Words.Cloud.Sdk.ApiException: Bad Request
   à Aspose.Words.Cloud.Sdk.RequestHandlers.ApiExceptionRequestHandler.<ThrowApiException>d__2.MoveNext()
--- Fin de la trace de la pile à partir de l'emplacement précédent au niveau duquel l'exception a été levée ---
   à System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   à System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   à Aspose.Words.Cloud.Sdk.RequestHandlers.ApiExceptionRequestHandler.<ProcessResponse>d__1.MoveNext()
--- Fin de la trace de la pile à partir de l'emplacement précédent au niveau duquel l'exception a été levée ---
   à System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   à System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   à Aspose.Words.Cloud.Sdk.ApiInvoker.<InvokeApiInternal>d__18.MoveNext()
--- Fin de la trace de la pile à partir de l'emplacement précédent au niveau duquel l'exception a été levée ---
   à System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   à System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   à Aspose.Words.Cloud.Sdk.ApiInvoker.<InvokeApi>d__14.MoveNext()
--- Fin de la trace de la pile à partir de l'emplacement précédent au niveau duquel l'exception a été levée ---
   à System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   à System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   à Aspose.Words.Cloud.Sdk.RequestHandlers.OAuthRequestHandler.<RequestToken>d__7.MoveNext()
--- Fin de la trace de la pile à partir de l'emplacement précédent au niveau duquel l'exception a été levée ---
   à System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   à System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   à Aspose.Words.Cloud.Sdk.RequestHandlers.OAuthRequestHandler.<ProcessRequest>d__5.MoveNext()
--- Fin de la trace de la pile à partir de l'emplacement précédent au niveau duquel l'exception a été levée ---
   à System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   à System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   à Aspose.Words.Cloud.Sdk.ApiInvoker.<InvokeApiInternal>d__18.MoveNext()
--- Fin de la trace de la pile à partir de l'emplacement précédent au niveau duquel l'exception a été levée ---
   à System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   à System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   à Aspose.Words.Cloud.Sdk.ApiInvoker.<InvokeApi>d__14.MoveNext()
--- Fin de la trace de la pile à partir de l'emplacement précédent au niveau duquel l'exception a été levée ---
   à System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   à System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   à Aspose.Words.Cloud.Sdk.WordsApi.<ConvertDocument>d__22.MoveNext()
   --- Fin de la trace de la pile d'exception interne ---
   à System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
   à Terrasoft.Configuration.AsposeCloudPdfConverter.Convert(Byte[] data)
   à Terrasoft.Configuration.ReportEngine.<GenerateMsWordReport>d__15.MoveNext()
   à Terrasoft.Core.Process.Configuration.ReportFileProcessingUserTask.SaveReports(IEnumerable`1 reports, Func`3 nameGenerator)
   à Terrasoft.Core.Process.Configuration.ReportFileProcessingUserTask.InternalExecute(ProcessExecutingContext context)
   à Terrasoft.Core.Process.ProcessFlowElement.CallInternalExecute(ProcessExecutingContext context)
   à Terrasoft.Core.Process.ProcessActivity.RunInCultureScope[T](Func`1 action)
   à Terrasoft.Core.Process.ProcessActivity.ExecuteElement(ProcessExecutingContext context)
   à Terrasoft.Core.Process.ProcessActivity.ExecuteItem(ProcessExecutingContext context)
   à Terrasoft.Core.Process.ProcessFlowElement.Execute(ProcessExecutingContext context)
---> (Exception interne #0) Aspose.Words.Cloud.Sdk.ApiException: Bad Request
   à Aspose.Words.Cloud.Sdk.RequestHandlers.ApiExceptionRequestHandler.<ThrowApiException>d__2.MoveNext()
--- Fin de la trace de la pile à partir de l'emplacement précédent au niveau duquel l'exception a été levée ---
   à System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   à System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   à Aspose.Words.Cloud.Sdk.RequestHandlers.ApiExceptionRequestHandler.<ProcessResponse>d__1.MoveNext()
--- Fin de la trace de la pile à partir de l'emplacement précédent au niveau duquel l'exception a été levée ---
   à System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   à System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   à Aspose.Words.Cloud.Sdk.ApiInvoker.<InvokeApiInternal>d__18.MoveNext()
--- Fin de la trace de la pile à partir de l'emplacement précédent au niveau duquel l'exception a été levée ---
   à System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   à System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   à Aspose.Words.Cloud.Sdk.ApiInvoker.<InvokeApi>d__14.MoveNext()
--- Fin de la trace de la pile à partir de l'emplacement précédent au niveau duquel l'exception a été levée ---
   à System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   à System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   à Aspose.Words.Cloud.Sdk.RequestHandlers.OAuthRequestHandler.<RequestToken>d__7.MoveNext()
--- Fin de la trace de la pile à partir de l'emplacement précédent au niveau duquel l'exception a été levée ---
   à System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   à System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   à Aspose.Words.Cloud.Sdk.RequestHandlers.OAuthRequestHandler.<ProcessRequest>d__5.MoveNext()
--- Fin de la trace de la pile à partir de l'emplacement précédent au niveau duquel l'exception a été levée ---
   à System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   à System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   à Aspose.Words.Cloud.Sdk.ApiInvoker.<InvokeApiInternal>d__18.MoveNext()
--- Fin de la trace de la pile à partir de l'emplacement précédent au niveau duquel l'exception a été levée ---
   à System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   à System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   à Aspose.Words.Cloud.Sdk.ApiInvoker.<InvokeApi>d__14.MoveNext()
--- Fin de la trace de la pile à partir de l'emplacement précédent au niveau duquel l'exception a été levée ---
   à System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   à System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   à Aspose.Words.Cloud.Sdk.WordsApi.<ConvertDocument>d__22.MoveNext()<---

Do you know why ?

Cordially

@CreatioSPRE

It seems you are encountering a “Bad Request” error when trying to use the Aspose API with your new account. This issue can often arise due to several reasons, especially when transitioning from a free account to a paid one. Here are some steps you can take to troubleshoot and resolve the issue:

  1. API Version: Ensure that you are using the correct API version. Aspose.Words Cloud introduced a new API version (V4.0) that requires JSON Web Token (JWT) authentication instead of OAuth2. Make sure your implementation is updated to use JWT for authentication. You can find more information about this in the Aspose documentation.

  2. Authentication: Verify that you are correctly obtaining and using the access token. The process typically involves sending a request to the token endpoint with your client ID and secret. Ensure that you are using the correct credentials associated with your new account.

  3. Request Format: Double-check the format of your API requests. Ensure that all required parameters are included and that they are formatted correctly. A “Bad Request” error often indicates that the server could not understand the request due to malformed syntax.

  4. File Upload: If you are uploading files, ensure that the files are correctly uploaded to the storage before attempting to convert them. You can use the storage APIs provided by Aspose to manage your files.

  5. Error Details: Look for more specific error messages in the response body, if available. Sometimes, the API will provide additional details about what went wrong, which can help in diagnosing the issue.

If you continue to experience issues, consider checking the Aspose forums or documentation for similar cases, as other users may have encountered and resolved similar problems.

For further assistance, you may want to provide more details about the specific API calls you are making and any additional error messages you receive.

Sources:
[1]: Convert RTF to PDF using Aspose.Words REST API throwing 400(Bad Request)

Hello,

Thank you for your reply.
The only change I make in my application are the API keys.
So I think the problem comes from a settings in the aspose account by I don’t know what it can be

Do you have an idea ?

Please share the code you are using. Meanwhile, you can check that you pass client_id and client_secret correctly(didn’t miss their positions in constructor)

here the code :

namespace Terrasoft.Configuration
{
	using Aspose.Words.Cloud.Sdk;
	using Aspose.Words.Cloud.Sdk.Model.Requests;
	using System.IO;
	using System.Threading.Tasks;
	using Terrasoft.Common;
	using Terrasoft.Core;
	using Terrasoft.Core.Factories;

	[DefaultBinding(typeof(IPdfConverter), Name = "PdfConverter")]
	public class AsposeCloudPdfConverter : IPdfConverter
	{

		private const string FORMAT = "pdf";
		private const string API_KEY_SETTINGS_CODE = "AsposeCloudApiKey";
		private const string APP_SID_SETTINGS_CODE = "AsposeCloudAppSID";
		private const string FONTS_LOCATION_SETTINGS_CODE = "AsposeCloudFontsLocation";

		private UserConnection _userConnection;

		private string TryGetSettingValue(string settingCode) {
			string settingValue = Core.Configuration.SysSettings.GetValue(_userConnection, settingCode, string.Empty);
			if (string.IsNullOrWhiteSpace(settingValue)) {
				throw new ArgumentNullOrEmptyException($"System settings {settingCode}");
			}
			return settingValue;
		}
		
		public AsposeCloudPdfConverter(UserConnection userConnection) {
			_userConnection = userConnection;
		}

		public byte[] Convert(byte[] data) {
			string apiKey = TryGetSettingValue(API_KEY_SETTINGS_CODE);
			string appSID = TryGetSettingValue(APP_SID_SETTINGS_CODE);
			string fontsLocation = Core.Configuration.SysSettings.GetValue(_userConnection, FONTS_LOCATION_SETTINGS_CODE, string.Empty);
			var inputFileStream = new MemoryStream(data);
			WordsApi asposeCloudWordsApi = new WordsApi(apiKey, appSID);
			ConvertDocumentRequest convertDocumentRequest = new ConvertDocumentRequest(inputFileStream, FORMAT);
			if (!string.IsNullOrEmpty(fontsLocation)) {
				convertDocumentRequest.FontsLocation = fontsLocation;
			}
			Task<Stream> convertResult = asposeCloudWordsApi.ConvertDocument(convertDocumentRequest);
			return convertResult.Result.ReadAllBytes();
		}
	}

}

Does it happen with every request? Or did it happen a couple of times yesterday?

it happens always with the api keys of the prod aspose account.
And it happens never with the api keys of the test/dev aspose account

Please share your id and secret, you can do it with private message, I will try to replicate this issue on my side.