public async Task<DataSourceResult> GetTripGridGroupedAsync(DataSourceRequest request)
Volo.Abp.Http.Client.AbpRemoteCallException: Internal Server Error
---> System.Text.Json.JsonException: Expected depth to be zero at the end of the JSON payload. There is an open JSON object or array that should be closed. Path: $.data | LineNumber: 8 | BytePositionInLine: 1.
---> System.Text.Json.JsonReaderException: Expected depth to be zero at the end of the JSON payload. There is an open JSON object or array that should be closed. LineNumber: 8 | BytePositionInLine: 1.
at System.Text.Json.ThrowHelper.ThrowJsonReaderException(Utf8JsonReader& json, ExceptionResource resource, Byte nextByte, ReadOnlySpan1 bytes) at System.Text.Json.Utf8JsonReader.ReadSingleSegment() at System.Text.Json.Utf8JsonReader.Read() at System.Text.Json.Utf8JsonReader.TrySkipPartial(Int32 targetDepth) at System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter
1.OnTryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
at System.Text.Json.Serialization.JsonConverter1.TryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value, Boolean& isPopulatedValue) at System.Text.Json.Serialization.JsonConverter
1.ReadCore(Utf8JsonReader& reader, T& value, JsonSerializerOptions options, ReadStack& state)
--- End of inner exception stack trace ---
at System.Text.Json.ThrowHelper.ReThrowWithPath(ReadStack& state, JsonReaderException ex)
at System.Text.Json.Serialization.JsonConverter1.ReadCore(Utf8JsonReader& reader, T& value, JsonSerializerOptions options, ReadStack& state) at System.Text.Json.Serialization.Metadata.JsonTypeInfo
1.Deserialize(Utf8JsonReader& reader, ReadStack& state)
at System.Text.Json.JsonSerializer.ReadFromSpan[TValue](ReadOnlySpan1 utf8Json, JsonTypeInfo
1 jsonTypeInfo, Nullable1 actualByteCount) at System.Text.Json.JsonSerializer.ReadFromSpan[TValue](ReadOnlySpan
1 json, JsonTypeInfo1 jsonTypeInfo) at Volo.Abp.Json.SystemTextJson.AbpSystemTextJsonSerializer.Deserialize[T](String jsonString, Boolean camelCase) at Volo.Abp.Http.Client.ClientProxying.ClientProxyBase
1.ThrowExceptionForResponseAsync(HttpResponseMessage response)
--- End of inner exception stack trace ---
at Volo.Abp.Http.Client.ClientProxying.ClientProxyBase1.ThrowExceptionForResponseAsync(HttpResponseMessage response) at Volo.Abp.Http.Client.ClientProxying.ClientProxyBase
1.RequestAsync(ClientProxyRequestContext requestContext)
at Volo.Abp.Http.Client.ClientProxying.ClientProxyBase1.RequestAsync[T](ClientProxyRequestContext requestContext) at Volo.Abp.Http.Client.DynamicProxying.DynamicHttpProxyInterceptorClientProxy
1.CallRequestAsync[T](ClientProxyRequestContext requestContext)
at Volo.Abp.Http.Client.DynamicProxying.DynamicHttpProxyInterceptor1.CallRequestAsync[T](ClientProxyRequestContext context) at Volo.Abp.Http.Client.DynamicProxying.DynamicHttpProxyInterceptor
1.GetResultAsync(Task task, Type resultType)
at Volo.Abp.Http.Client.DynamicProxying.DynamicHttpProxyInterceptor1.InterceptAsync(IAbpMethodInvocation invocation) at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter
1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func3 proceed) at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo) at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue
1.ProceedAsync()
at Volo.Abp.Validation.ValidationInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func
3 proceed)
at TmsSolution.Blazor.Client.Pages.Trips.List.Index.OnReadEvents(GridReadEventArgs args) in /Users/thinhnguyen/Documents/Regent/tmssolution/src/TmsSolution.Blazor.Client/Pages/Trips/List/Index.razor.cs:line 222
This is the request { "skip": 0, "page": 1, "pageSize": 20, "sorts": [ { "member": "CreationTime", "sortDirection": 1 } ], "filters": [ { "logicalOperator": 0, "filterDescriptors": [ { "member": "group", "operator": 8, "value": "TripStatusId" } ] } ], "groups": [ { "displayContent": "TripStatusId", "aggregateFunctions": [], "member": "TripStatusId", "sortDirection": 0 } ], "aggregates": [], "groupPaging": false }
This causes a 500 Internal Server Error on the client side and breaks the data flow, specifically in the OnReadEvents method in blazor Page.
Can you please give me way to fix this problem in abp framework
6 Answer(s)
-
0
To fix the "Expected depth to be zero at the end of the JSON payload" error when returning a DataSourceResult (such as from Telerik) in an ABP HTTP API, you need to ensure that the returned object is properly serialized and compatible with System.Text.Json (the default serializer in ABP). Telerik's DataSourceResult may contain complex or non-serializable types, or may be serialized in a way that System.Text.Json cannot handle by default.
Here are the recommended steps to resolve this issue:
Avoid Returning Complex Types Directly
Instead of returning DataSourceResult directly from your API method, map its data to a DTO or a simpler object that is easily serializable.Use Newtonsoft.Json if Required
If you must return DataSourceResult, configure your API to use Newtonsoft.Json instead of System.Text.Json, as Newtonsoft has better compatibility with complex types like DataSourceResult.In your
*.HttpApi.Host
project, update yourStartup.cs
or module configuration:
context.Services.AddControllers() .AddNewtonsoftJson(options => { options.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore; // Add other settings as needed });
And in your module: ```csharp Configure<AbpAspNetCoreMvcOptions>(options => { options.JsonSerializerIsSystemTextJson = false; });
Check for Open/Unclosed JSON Objects
Ensure that your action method is not returning an object with open references or circular dependencies. If you use navigation properties, project only the required fields into DTOs.Validate the Output
Before returning, serialize your result to JSON in a test to ensure it is valid and closed.Example: Map DataSourceResult to DTO
public class TripGridResultDto { public IEnumerable
public async Task
This ensures the returned object is simple and serializable. **Summary:** - Prefer returning DTOs or simple objects. - Switch to Newtonsoft.Json if you must return complex types. - Avoid circular references and ensure all objects are serializable. Sources: - [Export Excel files from ABP Blazor application](https://abp.io/community/articles/wm7nnw3n) - [ABP Support: DTO with Type property causes serialization error](https://abp.io/support/questions/2902) --- _This response was generated by AI. If it didn’t solve your problem, feel free to post a new answer — our support team will jump in to help you soon._
-
0
Hi
Please share your DTO(input/output) class code.
Thank
-
0
[maliming] said: Hi
Please share your DTO(input/output) class code.
Thank
Hi this is the class of telerik datasourcerequest
public class DataSourceResult { /// <summary> /// The actual data that will be displayed in the control. Often it is only the current page of data. /// </summary> public IEnumerable Data { get; set; } /// <summary> /// The total number of records in the original data source. Used for calculating a pager, for example. /// </summary> public int Total { get; set; } /// <summary>Information for aggregates.</summary> public IEnumerable<AggregateResult> AggregateResults { get; set; } /// <summary> /// Information for errors that occured during the data source operation. /// </summary> public object Errors { get; set; } } // Decompiled with JetBrains decompiler // Type: Telerik.DataSource.AggregateResult // Assembly: Telerik.DataSource, Version=3.0.3.0, Culture=neutral, PublicKeyToken=20b4b0547069c4f8 // MVID: 56FFCD7A-3247-443F-9129-0844EB752B0C // Assembly location: /Users/thinhnguyen/.nuget/packages/telerik.datasource/3.0.3/lib/net6.0/Telerik.DataSource.dll // XML documentation location: /Users/thinhnguyen/.nuget/packages/telerik.datasource/3.0.3/lib/net6.0/Telerik.DataSource.xml using System; using System.Globalization; #nullable disable namespace Telerik.DataSource; /// <summary>Information for aggregates on the data.</summary> public class AggregateResult { private object aggregateValue; private int itemCount; private readonly AggregateFunction function; /// <summary> /// Initializes a new instance of the <see cref="T:Telerik.DataSource.AggregateResult" /> class. /// </summary> /// <param name="value">The value of the result.</param> /// <param name="count">The number of arguments used for the calculation of the result.</param> /// <param name="function">Function that generated the result.</param> /// <exception cref="T:System.ArgumentNullException"><c>function</c> is null.</exception> public AggregateResult(object value, int count, AggregateFunction function) { if (function == null) throw new ArgumentNullException(nameof (function)); this.aggregateValue = value; this.itemCount = count; this.function = function; } /// <summary> /// Initializes a new instance of the <see cref="T:Telerik.DataSource.AggregateResult" /> class. /// </summary> /// <param name="function"><see cref="T:Telerik.DataSource.AggregateFunction" /> that generated the result.</param> /// <exception cref="T:System.ArgumentNullException"><c>function</c> is null.</exception> public AggregateResult(AggregateFunction function) : this((object) null, function) { } /// <summary> /// Initializes a new instance of the <see cref="T:Telerik.DataSource.AggregateResult" /> class. /// </summary> /// <param name="value">The value of the result.</param> /// <param name="function"><see cref="T:Telerik.DataSource.AggregateFunction" /> that generated the result.</param> public AggregateResult(object value, AggregateFunction function) : this(value, 0, function) { } /// <summary>Gets or sets the value of the result.</summary> /// <value>The value of the result.</value> public object Value { get => this.aggregateValue; internal set => this.aggregateValue = value; } /// <summary> /// The name of the field over which aggregation is performed. /// </summary> public string Member => this.function.SourceField; /// <summary>Gets the formatted value of the result.</summary> /// <value>The formatted value of the result.</value> public object FormattedValue { get { return string.IsNullOrEmpty(this.function.ResultFormatString) ? this.aggregateValue : (object) string.Format((IFormatProvider) CultureInfo.CurrentCulture, this.function.ResultFormatString, this.aggregateValue); } } /// <summary> /// Gets or sets the number of arguments used for the calulation of the result. /// </summary> /// <value>The number of arguments used for the calulation of the result.</value> public int ItemCount { get => this.itemCount; set => this.itemCount = value; } /// <summary> /// Gets or sets the text which serves as a caption for the result in a user interface. /// </summary> /// <value>The text which serves as a caption for the result in a user interface.</value> public string Caption => this.function.Caption; /// <summary>Gets the name of the function.</summary> /// <value>The name of the function.</value> public string FunctionName => this.function.FunctionName; /// <summary>The name of the aggregation method that is used.</summary> public string AggregateMethodName => this.function.AggregateMethodName; /// <summary> /// Returns a <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />. /// </summary> /// <returns> /// A <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />. /// </returns> public override string ToString() => this.Value != null ? this.Value.ToString() : base.ToString(); /// <summary> /// Returns a formatted string based on the passed format and the current result value. /// </summary> /// <param name="format"></param> /// <returns></returns> public string Format(string format) { return this.Value != null ? string.Format(format, this.Value) : this.ToString(); } }
I think the problem is from the nested depth or can't serilize the result .
-
0
hi
The DTO classes for requests and responses need to use primitive objects/types; otherwise, you'll have to add a JSON converter for serialization and deserialization.
Can you share the returned JSON? You can call the API in Swagger to see the returned JSON.
Of course. You can also share a minimal project to reproduce the error.
liming.ma@volosoft.com
Thanks.
-
0
[maliming] said: hi
The DTO classes for requests and responses need to use primitive objects/types; otherwise, you'll have to add a JSON converter for serialization and deserialization.
Can you share the returned JSON? You can call the API in Swagger to see the returned JSON.
Of course. You can also share a minimal project to reproduce the error.
Thanks.
Hi . In the swagger when I test , the response also response with the error 500
can't parse JSON. Raw result:
can't parse JSON. Raw result: {"data":[{"aggregates":{},"hasSubgroups":false,"member":"TripStatusId","itemCount":8,"subgroups":[],"items":[{"jobOrderId":"3a1b1e4a-e9aa-0a70-a357-690cf92c459d","assignedTo":"3a1ae0ad-9f93-fbb4-6037-7ca3c304c6ac","employmentType":0,"tripStatusId":"0a61a9f2-99e7-43ad-82de-86c01f2c3dd5","serviceType":0,"scheduleDate":"2025-07-16T10:25:50.981104","driverAssignedOn":"2025-07-15T10:27:19.076021","completionDate":null,"tripNumber":"IM-TP25070006-TR001","isProgress":false,"isCustomerBillable":true,"customerChargeAmount":null,"isDriverPayable":true,"driverPaymentAmount":null,"sortOrder":1,"releasedBy":null,"releaseOn":null,"tripGroupId":"b85521aa-3f38-4dc0-a375-a7ddba6277fc","remarks":null,"assignedToNavigation":{"identityUserId":"3a1ae0ad-9dfb-40d9-0255-ee6d0968aabd","lastMileSchemeId":null,"serviceProviderId":null,"bankId":"3a1ae0ad-9f97-10b1-b493-b9d5f5969d01","alias":null,"firstName":"Test","lastName":"Driver","email":"test@gmail.com","countryOfBirth":null,"nationality":"Vietnam","birthDate":"2001-10-10T00:00:00","startDate":"2025-07-10T00:00:00","endDate":"2040-01-05T00:00:00","licenseNumber":"212312312","licenseExpiryDate":"2025-07-18T00:00:00","driverType":"3a18e44e-ba9b-d186-5f06-e9b97c8d8598","fixedSalary":null,"phoneNumber":"22222222222","identityNumber":"oLQf/Dc4pv0gnuGqGlaoNw==","uniformType":null,"uniformSize":null,"coverallSize":null,"levy":null,"cpf":null,"cpfer":null,"cpfee":null,"baseSalary":null,"employmentType":2,"gender":0,"licenseClass":0,"driverPlatform":1,"status":0,"deletedBy":null,"isAvailable":true,"bank":null,"driverTypeNavigation":null,"lastMileScheme":null,"damageRepairs":[],"driverTokenPins":[],"fuelingRecords":[],"incidentDrivers":[],"lastmileSchemeDrivers":[],"payslips":[],"postalCodeSettingDetails":[],"summonFines":[],"vehicleDriverAssigns":[],"tripDriverHistories":[],"tripVas":[],"trips":[{"jobOrderId":"3a1b1e4a-e9aa-0a70-a357-690cf92c459d","assignedTo":"3a1ae0ad-9f93-fbb4-6037-7ca3c304c6ac","employmentType":0,"tripStatusId":"0a61a9f2-99e7-43ad-82de-86c01f2c3dd5","serviceType":0,"scheduleDate":"2025-07-16T10:25:50.981104","driverAssignedOn":"2025-07-15T10:27:19.076021","completionDate":null,"tripNumber":"IM-TP25070006-TR001","isProgress":false,"isCustomerBillable":true,"customerChargeAmount":null,"isDriverPayable":true,"driverPaymentAmount":null,"sortOrder":1,"releasedBy":null,"releaseOn":null,"tripGroupId":"b85521aa-3f38-4dc0-a375-a7ddba6277fc","remarks":null,"assignedToNavigation":{"identityUserId":"3a1ae0ad-9dfb-40d9-0255-ee6d0968aabd","lastMileSchemeId":null,"serviceProviderId":null,"bankId":"3a1ae0ad-9f97-10b1-b493-b9d5f5969d01","alias":null,"firstName":"Test","lastName":"Driver","email":"test@gmail.com","countryOfBirth":null,"nationality":"Vietnam","birthDate":"2001-10-10T00:00:00","startDate":"2025-07-10T00:00:00","endDate":"2040-01-05T00:00:00","licenseNumber":"212312312","licenseExpiryDate":"2025-07-18T00:00:00","driverType":"3a18e44e-ba9b-d186-5f06-e9b97c8d8598","fixedSalary":null,"phoneNumber":"22222222222","identityNumber":"oLQf/Dc4pv0gnuGqGlaoNw==","uniformType":null,"uniformSize":null,"coverallSize":null,"levy":null,"cpf":null,"cpfer":null,"cpfee":null,"baseSalary":null,"employmentType":2,"gender":0,"licenseClass":0,"driverPlatform":1,"status":0,"deletedBy":null,"isAvailable":true,"bank":null,"driverTypeNavigation":null,"lastMileScheme":null,"damageRepairs":[],"driverTokenPins":[],"fuelingRecords":[],"incidentDrivers":[],"lastmileSchemeDrivers":[],"payslips":[],"postalCodeSettingDetails":[],"summonFines":[],"vehicleDriverAssigns":[],"tripDriverHistories":[],"tripVas":[],"trips":[{"jobOrderId":"3a1b1e4a-e9aa-0a70-a357-690cf92c459d","assignedTo":"3a1ae0ad-9f93-fbb4-6037-7ca3c304c6ac","employmentType":0,"tripStatusId":"0a61a9f2-99e7-43ad-82de-86c01f2c3dd5","serviceType":0,"scheduleDate":"2025-07-16T10:25:50.981104","driverAssignedOn":"2025-07-15T10:27:19.076021","completionDate":null,"tripNumber":"IM-TP25070006-TR001","isProgress":false,"isCustomerBillable":true,"customerChargeAmount":null,"isDriverPayable":true,"driverPaymentAmount":null,"sortOrder":1,"releasedBy":null,"releaseOn":null,"tripGroupId":"b85521aa-3f38-4dc0-a375-a7ddba6277fc","remarks":null,"assignedToNavigation":{"identityUserId":"3a1ae0ad-9dfb-40d9-0255-ee6d0968aabd","lastMileSchemeId":null,"serviceProviderId":null,"bankId":"3a1ae0ad-9f97-10b1-b493-b9d5f5969d01","alias":null,"firstName":"Test","lastName":"Driver","email":"test@gmail.com","countryOfBirth":null,"nationality":"Vietnam","birthDate":"2001-10-10T00:00:00","startDate":"2025-07-10T00:00:00","endDate":"2040-01-05T00:00:00","licenseNumber":"212312312","licenseExpiryDate":"2025-07-18T00:00:00","driverType":"3a18e44e-ba9b-d186-5f06-e9b97c8d8598","fixedSalary":null,"phoneNumber":"22222222222","identityNumber":"oLQf/Dc4pv0gnuGqGlaoNw==","uniformType":null,"uniformSize":null,"coverallSize":null,"levy":null,"cpf":null,"cpfer":null,"cpfee":null,"baseSalary":null,"employmentType":2,"gender":0,"licenseClass":0,"driverPlatform":1,"status":0,"deletedBy":null,"isAvailable":true,"bank":null,"driverTypeNavigation":null,"lastMileScheme":null,"damageRepairs":[],"driverTokenPins":[],"fuelingRecords":[],"incidentDrivers":[],"lastmileSchemeDrivers":[],"payslips":[],"postalCodeSettingDetails":[],"summonFines":[],"vehicleDriverAssigns":[],"tripDriverHistories":[],"tripVas":[],"trips":[{"jobOrderId":"3a1b1e4a-e9aa-0a70-a357-690cf92c459d","assignedTo":"3a1ae0ad-9f93-fbb4-6037-7ca3c304c6ac","employmentType":0,"tripStatusId":"0a61a9f2-99e7-43ad-82de-86c01f2c3dd5","serviceType":0,"scheduleDate":"2025-07-16T10:25:50.981104","driverAssignedOn":"2025-07-15T10:27:19.076021","completionDate":null,"tripNumber":"IM-TP25070006-TR001","isProgress":false,"isCustomerBillable":true,"customerChargeAmount":null,"isDriverPayable":true,"driverPaymentAmount":null,"sortOrder":1,"releasedBy":null,"releaseOn":null,"tripGroupId":"b85521aa-3f38-4dc0-a375-a7ddba6277fc","remarks":null,"assignedToNavigation":{"identityUserId":"3a1ae0ad-9dfb-40d9-0255-ee6d0968aabd","lastMileSchemeId":null,"serviceProviderId":null,"bankId":"3a1ae0ad-9f97-10b1-b493-b9d5f5969d01","alias":null,"firstName":"Test","lastName":"Driver","email":"test@gmail.com","countryOfBirth":null,"nationality":"Vietnam","birthDate":"2001-10-10T00:00:00","startDate":"2025-07-10T00:00:00","endDate":"2040-01-05T00:00:00","licenseNumber":"212312312","licenseExpiryDate":"2025-07-18T00:00:00","driverType":"3a18e44e-ba9b-d186-5f06-e9b97c8d8598","fixedSalary":null,"phoneNumber":"22222222222","identityNumber":"oLQf/Dc4pv0gnuGqGlaoNw==","uniformType":null,"uniformSize":null,"coverallSize":null,"levy":null,"cpf":null,"cpfer":null,"cpfee":null,"baseSalary":null,"employmentType":2,"gender":0,"licenseClass":0,"driverPlatform":1,"status":0,"deletedBy":null,"isAvailable":true,"bank":null,"driverTypeNavigation":null,"lastMileScheme":null,"damageRepairs":[],"driverTokenPins":[],"fuelingRecords":[],"incidentDrivers":[],"lastmileSchemeDrivers":[],"payslips":[],"postalCodeSettingDetails":[],"summonFines":[],"vehicleDriverAssigns":[],"tripDriverHistories":[],"tripVas":[],"trips":[{"jobOrderId":"3a1b1e4a-e9aa-0a70-a357-690cf92c459d","assignedTo":"3a1ae0ad-9f93-fbb4-6037-7ca3c304c6ac","employmentType":0,"tripStatusId":"0a61a9f2-99e7-43ad-82de-86c01f2c3dd5","serviceType":0,"scheduleDate":"2025-07-16T10:25:50.981104","driverAssignedOn":"2025-07-15T10:27:19.076021","completionDate":null,"tripNumber":"IM-TP25070006-TR001","isProgress":false,"isCustomerBillable":true,"customerChargeAmount":null,"isDriverPayable":true,"driverPaymentAmount":null,"sortOrder":1,"releasedBy":null,"releaseOn":null,"tripGroupId":"b85521aa-3f38-4dc0-a375-a7ddba6277fc","remarks":null,"assignedToNavigation":{"identityUserId":"3a1ae0ad-9dfb-40d9-0255-ee6d0968aabd","lastMileSchemeId":null,"serviceProviderId":null,"bankId":"3a1ae0ad-9f97-10b1-b493-b9d5f5969d01","alias":null,"firstName":"Test","lastName":"Driver","email":"test@gmail.com","countryOfBirth":null,"nationality":"Vietnam","birthDate":"2001-10-10T00:00:00","startDate":"2025-07-10T00:00:00","endDate":"2040-01-05T00:00:00","licenseNumber":"212312312","licenseExpiryDate":"2025-07-18T00:00:00","driverType":"3a18e44e-ba9b-d186-5f06-e9b97c8d8598","fixedSalary":null,"phoneNumber":"22222222222","identityNumber":"oLQf/Dc4pv0gnuGqGlaoNw==","uniformType":null,"uniformSize":null,"coverallSize":null,"levy":null,"cpf":null,"cpfer":null,"cpfee":null,"baseSalary":null,"employmentType":2,"gender":0,"licenseClass":0,"driverPlatform":1,"status":0,"deletedBy":null,"isAvailable":true,"bank":null,"driverTypeNavigation":null,"lastMileScheme":null,"damageRepairs":[],"driverTokenPins":[],"fuelingRecords":[],"incidentDrivers":[],"lastmileSchemeDrivers":[],"payslips":[],"postalCodeSettingDetails":[],"summonFines":[],"vehicleDriverAssigns":[],"tripDriverHistories":[],"tripVas":[],"trips":[{"jobOrderId":"3a1b1e4a-e9aa-0a70-a357-690cf92c459d","assignedTo":"3a1ae0ad-9f93-fbb4-6037-7ca3c304c6ac","employmentType":0,"tripStatusId":"0a61a9f2-99e7-43ad-82de-86c01f2c3dd5","serviceType":0,"scheduleDate":"2025-07-16T10:25:50.981104","driverAssignedOn":"2025-07-15T10:27:19.076021","completionDate":null,"tripNumber":"IM-TP25070006-TR001","isProgress":false,"isCustomerBillable":true,"customerChargeAmount":null,"isDriverPayable":true,"driverPaymentAmount":null,"sortOrder":1,"releasedBy":null,"releaseOn":null,"tripGroupId":"b85521aa-3f38-4dc0-a375-a7ddba6277fc","remarks":null,"assignedToNavigation":{"identityUserId":"3a1ae0ad-9dfb-40d9-0255-ee6d0968aabd","lastMileSchemeId":null,"serviceProviderId":null,"bankId":"3a1ae0ad-9f97-10b1-b493-b9d5f5969d01","alias":null,"firstName":"Test","lastName":"Driver","email":"test@gmail.com","countryOfBirth":null,"nationality":"Vietnam","birthDate":"2001-10-10T00:00:00","startDate":"2025-07-10T00:00:00","endDate":"2040-01-05T00:00:00","licenseNumber":"212312312","licenseExpiryDate":"2025-07-18T00:00:00","driverType":"3a18e44e-ba9b-d186-5f06-e9b97c8d8598","fixedSalary":null,"phoneNumber":"22222222222","identityNumber":"oLQf/Dc4pv0gnuGqGlaoNw==","uniformType":null,"uniformSize":null,"coverallSize":null,"levy":null,"cpf":null,"cpfer":null,"cpfee":null,"baseSalary":null,"employmentType":2,"gender":0,"licenseClass":0,"driverPlatform":1,"status":0,"deletedBy":null,"isAvailable":true,"bank":null,"driverTypeNavigation":null,"lastMileScheme":null,"damageRepairs":[],"driverTokenPins":[],"fuelingRecords":[],"incidentDrivers":[],"lastmileSchemeDrivers":[],"payslips":[],"postalCodeSettingDetails":[],"summonFines":[],"vehicleDriverAssigns":[],"tripDriverHistories":[],"tripVas":[],"trips":[{"jobOrderId":"3a1b1e4a-e9aa-0a70-a357-690cf92c459d","assignedTo":"3a1ae0ad-9f93-fbb4-6037-7ca3c304c6ac","employmentType":0,"tripStatusId":"0a61a9f2-99e7-43ad-82de-86c01f2c3dd5","serviceType":0,"scheduleDate":"2025-07-16T10:25:50.981104","driverAssignedOn":"2025-07-15T10:27:19.076021","completionDate":null,"tripNumber":"IM-TP25070006-TR001","isProgress":false,"isCustomerBillable":true,"customerChargeAmount":null,"isDriverPayable":true,"driverPaymentAmount":null,"sortOrder":1,"releasedBy":null,"releaseOn":null,"tripGroupId":"b85521aa-3f38-4dc0-a375-a7ddba6277fc","remarks":null,"assignedToNavigation":{"identityUserId":"3a1ae0ad-9dfb-40d9-0255-ee6d0968aabd","lastMileSchemeId":null,"serviceProviderId":null,"bankId":"3a1ae0ad-9f97-10b1-b493-b9d5f5969d01","alias":null,"firstName":"Test","lastName":"Driver","email":"test@gmail.com","countryOfBirth":null,"nationality":"Vietnam","birthDate":"2001-10-10T00:00:00","startDate":"2025-07-10T00:00:00","endDate":"2040-01-05T00:00:00","licenseNumber":"212312312","licenseExpiryDate":"2025-07-18T00:00:00","driverType":"3a18e44e-ba9b-d186-5f06-e9b97c8d8598","fixedSalary":null,"phoneNumber":"22222222222","identityNumber":"oLQf/Dc4pv0gnuGqGlaoNw==","uniformType":null,"uniformSize":null,"coverallSize":null,"levy":null,"cpf":null,"cpfer":null,"cpfee":null,"baseSalary":null,"employmentType":2,"gender":0,"licenseClass":0,"driverPlatform":1,"status":0,"deletedBy":null,"isAvailable":true,"bank":null,"driverTypeNavigation":null,"lastMileScheme":null,"damageRepairs":[],"driverTokenPins":[],"fuelingRecords":[],"incidentDrivers":[],"lastmileSchemeDrivers":[],"payslips":[],"postalCodeSettingDetails":[],"summonFines":[],"vehicleDriverAssigns":[],"tripDriverHistories":[],"tripVas":[],"trips":[{"jobOrderId":"3a1b1e4a-e9aa-0a70-a357-690cf92c459d","assignedTo":"3a1ae0ad-9f93-fbb4-6037-7ca3c304c6ac","employmentType":0,"tripStatusId":"0a61a9f2-99e7-43ad-82de-86c01f2c3dd5","serviceType":0,"scheduleDate":"2025-07-16T10:25:50.981104","driverAssignedOn":"2025-07-15T10:27:19.076021","completionDate":null,"tripNumber":"IM-TP25070006-TR001","isProgress":false,"isCustomerBillable":true,"customerChargeAmount":null,"isDriverPayable":true,"driverPaymentAmount":null,"sortOrder":1,"releasedBy":null,"releaseOn":null,"tripGroupId":"b85521aa-3f38-4dc0-a375-a7ddba6277fc","remarks":null,"assignedToNavigation":{"identityUserId":"3a1ae0ad-9dfb-40d9-0255-ee6d0968aabd","lastMileSchemeId":null,"serviceProviderId":null,"bankId":"3a1ae0ad-9f97-10b1-b493-b9d5f5969d01","alias":null,"firstName":"Test","lastName":"Driver","email":"test@gmail.com","countryOfBirth":null,"nationality":"Vietnam","birthDate":"2001-10-10T00:00:00","startDate":"2025-07-10T00:00:00","endDate":"2040-01-05T00:00:00","licenseNumber":"212312312","licenseExpiryDate":"2025-07-18T00:00:00","driverType":"3a18e44e-ba9b-d186-5f06-e9b97c8d8598","fixedSalary":null,"phoneNumber":"22222222222","identityNumber":"oLQf/Dc4pv0gnuGqGlaoNw==","uniformType":null,"uniformSize":null,"coverallSize":null,"levy":null,"cpf":null,"cpfer":null,"cpfee":null,"baseSalary":null,"employmentType":2,"gender":0,"licenseClass":0,"driverPlatform":1,"status":0,"deletedBy":null,"isAvailable":true,"bank":null,"driverTypeNavigation":null,"lastMileScheme":null,"damageRepairs":[],"driverTokenPins":[],"fuelingRecords":[],"incidentDrivers":[],"lastmileSchemeDrivers":[],"payslips":[],"postalCodeSettingDetails":[],"summonFines":[],"vehicleDriverAssigns":[],"tripDriverHistories":[],"tripVas":[],"trips":[{"jobOrderId":"3a1b1e4a-e9aa-0a70-a357-690cf92c459d","assignedTo":"3a1ae0ad-9f93-fbb4-6037-7ca3c304c6ac","employmentType":0,"tripStatusId":"0a61a9f2-99e7-43ad-82de-86c01f2c3dd5","serviceType":0,"scheduleDate":"2025-07-16T10:25:50.981104","driverAssignedOn":"2025-07-15T10:27:19.076021","completionDate":null,"tripNumber":"IM-TP25070006-TR001","isProgress":false,"isCustomerBillable":true,"customerChargeAmount":null,"isDriverPayable":true,"driverPaymentAmount":null,"sortOrder":1,"releasedBy":null,"releaseOn":null,"tripGroupId":"b85521aa-3f38-4dc0-a375-a7ddba6277fc","remarks":null,"assignedToNavigation":{"identityUserId":"3a1ae0ad-9dfb-40d9-0255-ee6d0968aabd","lastMileSchemeId":null,"serviceProviderId":null,"bankId":"3a1ae0ad-9f97-10b1-b493-b9d5f5969d01","alias":null,"firstName":"Test","lastName":"Driver","email":"test@gmail.com","countryOfBirth":null,"nationality":"Vietnam","birthDate":"2001-10-10T00:00:00","startDate":"2025-07-10T00:00:00","endDate":"2040-01-05T00:00:00","licenseNumber":"212312312","licenseExpiryDate":"2025-07-18T00:00:00","driverType":"3a18e44e-ba9b-d186-5f06-e9b97c8d8598","fixedSalary":null,"phoneNumber":"22222222222","identityNumber":"oLQf/Dc4pv0gnuGqGlaoNw==","uniformType":null,"uniformSize":null,"coverallSize":null,"levy":null,"cpf":null,"cpfer":null,"cpfee":null,"baseSalary":null,"employmentType":2,"gender":0,"licenseClass":0,"driverPlatform":1,"status":0,"deletedBy":null,"isAvailable":true,"bank":null,"driverTypeNavigation":null,"lastMileScheme":null,"damageRepairs":[],"driverTokenPins":[],"fuelingRecords":[],"incidentDrivers":[],"lastmileSchemeDrivers":[],"payslips":[],"postalCodeSettingDetails":[],"summonFines":[],"vehicleDriverAssigns":[],"tripDriverHistories":[],"tripVas":[],"trips":[{"jobOrderId":{
-
0
hi
Can you share a minimal project that reproduces the error?
I will download and check your code.
liming.ma@volosoft.com
Thanks.