Platform Errors
The following MinistryPlatform errors have documented solutions.
Timeout Expired
The timeout period elapsed prior to obtaining a connection from the pool.
This error may occur when all pooled connections are used and you reached max pool size. The most likely cause that some queries are taking too long to finish.
If you have server access, use SQL Profiler during the service (or timeframe you get the error) to analyze what queries are taking a long time. The goal is to identify what queries are tying up resources and then determine how do deal with those specific queries.
If you are running SQL Server 2016 or later, you can also use SQL Query Store. It gathers information on long-running queries, and you should run it for an extended time to get good data.
Column specified multiple times
The column xxxx was specified multiple times for _InnerQuery.
This error happens when a field is listed more than once in your Field List. To fix this, remove all but one. The error will contain the specific Field Name.
The correlation name "<column-name>_Table' is specified multiple times in a FROM clause.
This issue happens when a relationship is specified more than once in the SQL Server database. The relationship is on the column named in the error message (represented above as <column-name>). To resolve this, determine which table is in scope and compare all of the relationships for the named column. Use the table/relationships designer in SQL Server Management Studio to look for one that is defined twice.
Subquery returned more than one value
Subquery returned more than one value.
This is not permitted when the subquery follows =, !=, <, <=, >, >= or when the subquery is used as an expression.
This error usually happens in a view when a subquery must return a single value. This is almost always when you use a subquery in the Field List. To resolve this issue, the subquery should use one of the following techniques to return a single value: Aggregates, TOP 1, STUFF, DISTINCT, GROUP BY (see Advanced SQL - Calculated Fields).
Circular reference between tables
There is a circular reference between tables.
This error normally occurs when attempting to delete a record. The system doesn't easily resolve circular references, so the delete halts until you resolve the circular condition manually.
- In general, we don't recommend deleting records. This is the easiest solution.
- You can also find the records halting the delete and remove the relationships specified in the error message. Read the error message carefully to determine which field is causing the circular reference. This is the field you need to clear to delete. If you need, you can go back and restore the relationships after your delete. You may want to save these in a separate selection so you can go back to them.
For example, Groups. Groups can refer to Groups through the Parent Group field. If a Parent Group has itself as a child Group (however many levels deep), it causes a circular reference. Here is a helpful view example to help you locate these types of error records on the Groups page if they are one level deep (it will not reveal multiple levels deep).
Fields:
Groups.[Group_Name] AS [Group Name],Parent_Group_Table.[Group_Name] AS [Parent Group Name]
View Clause:
Groups.[Group_Name] AS [Group Name],Parent_Group_Table.[Group_Name] AS [Parent Group Name]Copied
- A third option is to request Professional Services and have them delete it for you. Send your request to Support.
- If the table truly should be capable of a circular reference (directly to itself or indirectly through other related tables), this may indicate an improperly defined relationship in the database. See "Probable cause for the error Primary key value is not provided or does not represent an integer" for more information. See also: Deleting Users, Adding and Deleting Security Roles.
Invalid sorting expression
Invalid sorting expression: Column index is outside of the column's list.
This happens when you previously clicked on a column header to sort the column in the page grid, but the number of columns is now fewer than it was when you sorted. It is specific to the browser and machine you used when you sorted. To prevent this error, sort using a different column visible in the view.
Input string was not in "the" or "a" correct format
There are two variations of this error. Note whether the article in the error is "a" or "the".
Input string was not in the correct format. If you get this when you try to open a record, the likely cause is the Selected Record Expression for the page. If a field name does not fully qualify with a table name, add the table name and a dot. For example, "Program_Name" should be "Programs.Program_Name".
Input string was not in a correct format. If you get this error, look for default values for columns in the table you try to display a page for. These are defined in the database on the server.
Record corresponding to the provided identifier is not found
Record corresponding to the provided identifier is not found. Parameter name: value. A default value is defined in a table field which has no corresponding record in the related table. To solve this, change the default for the table field using SQL Server Management Studio. See Default Values.
Invalid column name
Invalid column name.
The most likely cause for this error is a field in a view which needs to qualify with the table name. Check both the Fields List and the Filter Clause; the table reference should fully qualify in both places for views and charts to function correctly.
ORDER BY items must appear in the select list
ORDER BY items must appear in the select list if SELECT DISTINCT is specified.
This is usually due to a sort clause in a STUFF function. When you use DISTINCT with an ORDER BY clause, the sort field must match the DISTINCT field. In a STUFF, it usually looks like this:
STUFF(SELECT DISTINCT ', ' + G.Group_Name FROM...
The fix is to use the exact same calculation for the sort, like this:
ORDER BY ', ' + G.Group_Name...
Invalid Column name 'User_ID'. Procedure: "dp_DeriveValueFromFieldName"
Invalid column name 'User_ID'. Procedure: "dp_DeriveValueFromFieldName".
There are different conditions which can cause this error. Either the value is incorrect or you should omit the value. In the Steps sub-page in the Processes page, not all of the fields are visible (the fields are hidden or shown depending on which values you selected). This can lead to a condition in which the Lookup User Field is populated but it should not be (for example, if you copied and then edited the Step). If you can't see the User Lookup Field, check for a value by following the link navigation to see the full record. If the value is populated (but was not visible), clearing the value may clear up this error.
Cannot insert the value NULL into column
Cannot insert the value NULL into column <primary key field>, table <table-name>; column does not allow nulls. INSERT fails. The statement has been terminated.
When this error occurs for a Primary Key field, you probably created the field without an IDENTITY specification. See Creating Pages.
This method or property cannot be called on Null values.
Data is null. This method or property cannot be called on Null values.
This error doesn't normally display in the User Interface but you can find it in the Event Viewer. One known cause is a Contact with View Notifications but no email address. Another cause is a Task that is assigned to, or has the Author of, a User that does not have a Display Name on their record.
An item with the same key has already been added
An item with the same key has already been added.
Filtered Pages may cause this error, and it may manifest in the use of Core Tools. Check that you haven't used the System Name for a page more than once (for example, from copying an existing page) and make sure there are not two or more Pages for the same table with no filter. Only one Page should be unfiltered.
Ambiguous Column Name
Ambiguous Column Name.
A Page or View may cause this error when the resulting SQL statement refers to two fields with the same name from different tables.
Look for any fields listed in the error that are unqualified with a table name:
- Page:
- Default Field List
- Contact ID Field
- Start Date Field
- End Date Field
- Selected Record Expression
- Page Views (start with the Default View or Pick List View depending on the context):
- Field List
- View Clause
- Order By
- Sub-Page Views (start with the Sub-Pages on the Page):
- Field List
- View Clause
- Order By
Table that supports direct deletes only
Cannot perform operation because the page <page name> is based on a table that supports direct deletes only.
This error happens when the page record has the field Direct Delete Only set to prevent cascading deletes. See Direct Delete Only on in Page Fields.
The DELETE statement conflicted with the REFERENCE constraint
The DELETE statement conflicted with the REFERENCE constraint FK_dp_Notification_Page_View_dp_Page_Views.
This error occurs when you try to delete a View with View Notifications attached to it.
The transaction was aborted
The transaction was aborted.
The most common source of this error is an incorrectly configured active Process for the table. Look for incorrect SQL in the Dependent Clause. Another possible cause is an error in a database Trigger (this is something you would have to get on the server to diagnose).
The conversion of a date data type to a datetime data type resulted in an out-of-range value
The conversion of a date data type to a datatime data type resulted in an out-of-range value.
This error happens when a date field is outside of the range for datetime. The datetime data type only supports values Between 1753-01-01 and 9999-12-31. You may be able to find the incorrect value using a query like this (using SQL Server Management Studio):
SELECT Contact_ID, Date_of_Birth FROM Contacts WHERE Date_of_Birth < '1753-01-01' OR Date_of_Birth > '9999-12-31' ORDER BY Date_of_BirthCopied
Primary key value is not provided or does not represent an integer
Primary key value is not provided or does not represent an integer.
This error may happen if a table has a self-join to its own primary key. The most common cause for this is the addition of an extra relationship while using SSMS. The default values for a new relationship are the primary key to the primary key. If you save the defaults without changing them, this condition can result. The easiest way to diagnose for a specific table is to look for a relationship named FK_Table_Table where "Table" is the table you're editing. If the Foreign Key and Primary Keys should not point to the same table or column. See the following example:
Unable to cast object to type 'System.Int32' to type 'System.String'
If this error happens when you create a Task, check the Selected Record Expression (SRE) for the Page. Because the SRE converts to a string (text) and stores in the task, the expression must handle any values that are not already strings (text).
For example, this SRE is not valid because an integer is not automatically converted into a string:
Form_Response_Answer_ID
Here the value is properly converted to a string:
CONVERT(varchar(10), Form_Response_Answer_ID)
Unable to cast object of type 'System.DateTime' to type 'System.String'
If this error happens when you create a Task, check the Selected Record Expression (SRE) for the Page. Because the SRE converts to a string (text) and stores in the task, the expression must handle any values that are not already strings (text)
For example, this SRE is not valid because a date cannot automatically convert into a string:
Form_Responses.Response_Date
Here are two other ways the you can express the value and properly convert it to a string.
The first method uses functions supported in the Platform to adjust the date for the User's Time Zone and Locale:
dbo.dp_Format_Date(dbo.dp_Convert_DateTime(Form_Responses.Response_Date,dp_DomainTimeZone,dp_UserTimeZone),dp_UserLocale)
The second version converts a date using the raw date value and a SQL format:
CONVERT(VARCHAR(10),Form_Responses.Response_Date,101)
Conditions Without Specific Error Messages
Not able to edit a Record in the Platform.
Symptoms of this issue include:
- Users can't commit changes to a record, or
- The ID for the record does not appear in the title.
This can happen with a self-referencing key in the table. When you create a relationship in SSMS, the default fields are both the primary key. If you accidentally save this without changing the Foreign Key Column, this issue occurs.
Permission Errors
User is not authorized to access page data.
The User requires permission for a Page. If this happens when you edit a Series, you must grant the Assign permission for the page (see Page Permissions). If the error happens in the Preview Record tab for a Task, the User requires permissions to the record associated with the Task. Check permissions for the page listed in the Associated Page column for the task.
Cannot retrieve a user associated with the current request.
The likely cause of this error is an expired login. Log in again and retry.
Advanced Search Errors
System was not able to parse and recognize some of the expressions in the field list and filter clause! Do you want to continue?
See Personal Views.
Incorrect syntax near the keyword ORDER.
This error often occurs from an incomplete filter clause. Look for one or more opening parentheses that don't have corresponding close parentheses.
Cloud Errors (CloudTools/BMT)
Client is unknown or not enabled.
This could be a configuration issue on the Cloud Server or in the customer platform. Customers should first check to see that the API Client is not disabled. You can find the client ID in scope in the URL in the window where the error message displays.
Message Errors (Email/SMTP)
See Message Errors.
Login Screen - Fields Missing
We discovered that, unfortunately, we don't play well with Rocket Loader. Rocket Loader is a feature by Cloudflare that can help reduce page load time. Unfortunately, the method in which it does this is very aggressive, is a beta product, and can often break JavaScript. If your MinistryPlatform login page loads, but you have no fields presented to log in, this might be the cause. Contact Cloudflare support for assistance.