SSRS Api : Mobile report package is invalid - reporting-services

I try to call the ssrs api to create a new mobile report, based on a template that I previously created.
The api returns the following error : "code":"102","message":"Mobile report package is invalid."
Here is the content that I send as parameters in my request :
{application/json={
"AllowCaching":true,
"HasSharedDataSets":false,
"Type":"MobileReport",
"Name":"testhistory",
"Path":"/tests/KPI_Indicator_1782687929/testhistory",
"Hidden":false,
"Size":996,
"ParentFolderId":"33cd0935-43e9-449d-9211-b663a2078610",
"Content":"eyJBbGxvd0NhY2hpbmciOnRydWUsIk1hbmlmZXN0Ijp7IkRlZmluaXRpb24iOnsiSWQiOiI5ZTYxYTY0ZC1iMjhiLTRiNTgtYjU1OS0yMTRiMDA4NDIwZDUiLCJQYXRoIjoiL1RlbXBsYXRlcy9UZW1wbGF0ZV9tb2JpbGVfcmVwb3J0L2NvbnRlbnRzL0RlZmluaXRpb24iLCJOYW1lIjoiRGVmaW5pdGlvbiIsIkhhc2giOiJiMDk5ZDdmNTM4ZGU2OGIyZWQyN2M5YmY1YzU1OTIyMWZmNDdmMzUyMGZmOTQxOWM1OTgwMTY2NjM3M2RhN2EwIn0sIlJlc291cmNlcyI6W3siTmFtZSI6IlVuaXZlcnNhbEJyYW5kIiwiVHlwZSI6MSwiSXRlbXMiOlt7IktleSI6ImNvbG9ycyIsIklkIjoiMWNiZDAyZjQtNTE2Zi00OTQwLTg4OTMtNzY3ODkyYmRhNDRkIiwiUGF0aCI6Ii9UZW1wbGF0ZXMvVGVtcGxhdGVfbW9iaWxlX3JlcG9ydC9jb250ZW50cy9Vbml2ZXJzYWxCcmFuZC5jb2xvcnMiLCJOYW1lIjoiVW5pdmVyc2FsQnJhbmQuY29sb3JzIiwiSGFzaCI6IjAzZDNiYjRjNWMwN2U3ZDRjZThmNzcyMjg1NTc3YmY5M2JkNGIzZmNmMzQ0MjczMGQ5NDUzZmI2NzcwNGQyMzcifV19XSwiRGF0YVNldHMiOltdLCJUaHVtYm5haWxzIjpbeyJUeXBlIjoxLCJJZCI6ImNlMjg4ODVkLWIxODItNDhlNC04NzIzLWJhN2Q3YjA5OTEwOCIsIlBhdGgiOiIvVGVtcGxhdGVzL1RlbXBsYXRlX21vYmlsZV9yZXBvcnQvY29udGVudHMvTGFuZHNjYXBlIiwiTmFtZSI6IkxhbmRzY2FwZSIsIkhhc2giOiJhYWY5OTQ1MGRiYmVlOWZjZTk4MGVhNjBmZTkyZDI5YmVjN2VhYzRhMDAwYTQ0MjY1MzI2OTE0OGM3YTJmMzVmIn0seyJUeXBlIjoyLCJJZCI6IjQzNTYzNjJkLWQyYzMtNGMxOS04ZmJlLTA1ZTc5NWYzNjczZCIsIlBhdGgiOiIvVGVtcGxhdGVzL1RlbXBsYXRlX21vYmlsZV9yZXBvcnQvY29udGVudHMvUG9ydHJhaXQiLCJOYW1lIjoiUG9ydHJhaXQiLCJIYXNoIjoiMmIzMzc2NzUxOWM2MTc4MTcwOTk2OGUyZjM4NzMxOGZjMjUxZmUwOTM5ZWFkMDRlMjkwNTgzZGQzN2Q5MmMxZCJ9XX19",
"IsFavorite":false}}
Thanks in advance for your help

Related

Autodesk-designautomation: Internal Server Error(Error Code 500): Missing parameter in WorkItem

I am using Autodesk Revit and have been trying to implement the Design Automation API. I have been successful in trying out the sample, modify-your-model tutorial where the dimensions of a window are altered. However the example code is not executing perfectly anymore and it displays an internal server error message(error code 500). The error console claims that some parameter in the workItem is missing. The code worked again on the morning of 14th March again, but by noon it started showing the same error. The error log on the web page and console are given below respectively.
My question is, has the Autodesk OSS server been down for some time now or is it some fault from my side? Please help me out.
P.S. The same code worked perfectly before. I have not edited anything. Yes, I did try changing the Client ID and Client Secret and also update the ngrok address every 2hours.
Sincerely
Error list
-Failed to load resource: the server responded with a status of 500 (Internal Server Error)
-No webpage was found for the web address: http://localhost:3000/api/forge/designautomation/workitems
error in debugger
-fail: Microsoft.AspNetCore.Server.Kestrel[13]
Connection id "0HM76OJJ532MV", Request id "0HM76OJJ532MV:00000002": An unhandled exception was thrown by the application.
System.Net.Http.HttpRequestException: The server returned the non-success status code 400 (Bad Request).
More error details:
{
"url": [
"Error converting value \"http://aa025317d1f2.ngrok.io /api/forge/callback/designautomation?id=76m1z2sw7uQi-jtAYzYvgA&outputFileName=20210314024133_output_revit_sample_file.rvt\" to type 'System.Uri'. Path 'url', line 1, position 2376."
],
"workItem": [
"A value for the 'workItem' parameter or property was not provided."
]
}
As suggested in the comments there is a space in the ngrok url posted to the workitem:
http://aa025317d1f2.ngrok.io /api/forge/callback/designautomation?id=76m1z2sw7uQi-jtAYzYvgA&outputFileName=20210314024133_output_revit_sample_file.rvt

Error receiving large report using Reporting Services Execution Web service

I have an application which stores photo data in database. An SSRS report is used to generate reports of photos related to a specific entity. The information required to generate this report is stored in a separate database and very simply links a ReportId with a number of photos. The Reporting Services Execution Web service is used to render a report in Word format and output a byte array which is then used by the application.
The issue is, there is a very clear and repeatable size limit beyond which the report is not received by the application. In each case the report is rendered successfully but the response is never sent as per the RS logs:
rshost!rshost!1bfc!03/14/2018-21:46:48:: e ERROR: HttpPipelineCallback::SendResponse(): failed writing response.
rshost!rshost!1bfc!03/14/2018-21:46:48:: e ERROR: Failed with win32 error 0x0057, pipeline=0x0000027542592740.
httpruntime!ReportServer_0-1!1bfc!03/14/2018-21:46:48:: e ERROR: Failed in
BaseWorkerRequest::SendHttpResponse(bool), exception=System.ArgumentException: Value does not fall within the expected range.
at Microsoft.ReportingServices.HostingInterfaces.IRsHttpPipeline.SendResponse(Void* response, Boolean finalWrite, Boolean closeConn)
at ReportingServicesHttpRuntime.BaseWorkerRequest.SendHttpResponse(Boolean finalFlush)
library!ReportServer_0-1!1bfc!03/14/2018-21:46:48:: e ERROR: Throwing Microsoft.ReportingServices.Diagnostics.Utilities.ReportServerHttpRuntimeInternalException: RsWorkerRequest::FlushResponse., Microsoft.ReportingServices.Diagnostics.Utilities.ReportServerHttpRuntimeInternalException: An internal or system error occurred in the HTTP Runtime object for application domain ReportServer_SSRS_0-1-131655000672564770. ---> System.ArgumentException: Value does not fall within the expected range.
at ReportingServicesHttpRuntime.BaseWorkerRequest.SendHttpResponse(Boolean finalFlush)
at ReportingServicesHttpRuntime.RsWorkerRequest.FlushResponse(Boolean finalFlush)
--- End of inner exception stack trace ---;
rshost!rshost!1bfc!03/14/2018-21:46:48:: e ERROR: HttpPipelineCallback::SendResponse(): failed writing response.
rshost!rshost!1bfc!03/14/2018-21:46:48:: e ERROR: Failed with win32 error 0x10DD, pipeline=0x0000027542592740.
This appears to be directly related to some size limit of the service http response for the following reasons:
The request itself is very small, just a Report Id i.e. httpRuntime maxRequestLength is not related, this has been tested.
The error happens within a few minutes of the request i.e. httpRuntime executionTimeout is not related, this has been tested.
I can reliably and repeatably add one photo too many to the report and it will fail, remove one photo and it renders and sends with no issues, add one photo and it will fail...
The times to render vary so again it appears more related to size than some timeout.
The report server execution logs show that the rendering is successful every time, regardless of whether the report is sent or not.
I have reproduced the error using both the application which normally calls the report and a separate console app that simply generates a web service client and tries to render and receive the report as a byte array using the Render2 method.
I have reproduced this error using SQL Server 2012 and SQL Server 2016, on several different report servers, including setting up a report server locally and running the server and request on the same machine.
Regardless of the combination of photos, the report always renders successfully but fails to send around a bytecount of ~238,000,000 i.e. not related to some bad data.
In all cases I am able to generate reports of the same size or greater through the Report Server portal with no issues.
Has anyone experienced similar behaviour using the RS web service? I have searched online extensively without any luck. Any suggestions on how to address this issue would be greatly appreciated.
Microsoft finally identified HttpSendResponseEntityBody as the source of the error. The function sends entity-body data associated with an HTTP response, and as per MSDN has the following parameter:
EntityChunkCount [in] A number of structures in the array pointed to by pEntityChunks. This count cannot exceed 9999.
Microsoft don't have any SSRS documentation that addresses report size limits. At this stage all they have done is suggest that "we can use other tools for this data extracting" and that "generally we suggest put the data smaller than 100MB or the row counts less than 1,000,000".

SSRS 2016 can't set credentials when using an expression based connection string

I am trying to deploy a SSRS report to a 2016 server which uses a an API as it's data source. The URL for the API is generated dynamically via an expression which builds the query string based on a couple of report parameters.
In the past, using report manager I could set which account the API is called under.
Note that in the above screenshot the Connection string is still expression based.
However if I attempt the same thing in 2016 the connection string is wiped out.
Surely the connection string and the credentials should be independent, why has this changed in 2016 or is it a bug?
I had a similar issue in ReportServer 2017; however if you click the button 'Revert to Default' (visible in the above screenshot) the Expression based connection string will magically reappear!
Nice feature - if you find it ;-)

Unable to launch Yodlee FastLink 2.0 (Integration guide for the web)

I'm following this link: https://developer.yodlee.com/Fastlink_2.0/FastLink_Integration_Guide_for_Web for launching Yodlee's Fastlink 2.0
I have obtained the RSessionTokens and authenticator token.
My HTML form post looks like this:
Processing...
FinappId :
RSession :
Redirect :
Token :
Extra Params :
But when I click on submit, it gives me an error page saying - "Technical Difficulties with error code".
When I try opening https://node.developer.yodlee.com/, it takes me to a page which says - "No FinApp specified."
Please help
Please check if you have passed FinAppId. (10003600-Aggregation; 10003620 - Instant account verification)
Then check the parameters which you are passing are following the URL:
https://node.developer.yodlee.com/authenticate/restserver/
For Ex:
https://node.developer.yodlee.com/finapp/10003600/?brand=10010352&id=10003600&appId=3A4CAE9B711Q1CCD7FF41F51006E9ED00&channelId=-1&version=9.55&status=published&c=csit_key_0:gyKnWdaQx1HszC570IFd2Jwvayk=&finappCDNURL=&resturl=https%3A%2F%2F111.12.25.88%2Fservices%2Fsrest%2Frestserver&l=
Hope this helps.
Regards,
Krithik

Telerik Reporting - Passing object to UriReportSource Html5 reporting

I'm wondering how to passing the object data source into html5 report viewer.
I have view like this:
#{
var theData = new UriReportSource();
theData.Uri = "TestingReport.trdx";
//this is should passing the data right?
theData.Parameters.Add("passing", Model.pasing);
theData.Parameters.Add("anotherPassing", Model.another);
}
#(
Html.TelerikReporting().ReportViewer()
.TemplateUrl("../ReportViewer/templates/telerikReportViewerTemplate.html").Id("ReportId")
.ReportSource(theData)
.ViewMode(ViewModes.PRINT_PREVIEW)
.ScaleMode(ScaleModes.SPECIFIC)
.Scale(1.0)
.ServiceUrl("/api/reports/")
)
I already wired up the .trdx report into object data source.
And this documentation is not helping, it's use TypeDataSource.
.ServiceUrl() is what your looking for.
Url.Content("/api/reports/") is what Telerik has in their examples as the argument to ServiceUrl. It assumes the api is implemented in the same application as the client (viewer).
To go across domains the server has to apply CORS to the API
e.g.
.ServiceUrl(Url.Content("(prefix + server):9176/api/reports/"))` (a different web api application on localhost) is the call to make on the client.