---
title: "Troubleshooting Data Object Run-Time Errors"
description: "*This article explains how to diagnose and resolve a specific SQL compilation error that may occur when executing a Data Block.* ## Unexpected `` **Example Error Message** ``` 001003 (42000): 01bea28c-0a0b-e7df-0003-040e00eb9a22: SQL compilation error: syntax error line 1 at position…"
url: "https://learn.assette.com/docs/troubleshooting-data-object-run-time-errors/"
updated: "2025-09-04"
category: Developers / Developer Tools / Data Object Editor
---

# Troubleshooting Data Object Run-Time Errors

*This article explains how to diagnose and resolve a specific SQL compilation error that may occur when executing a Data Block.*

## Unexpected `<EOF>`

**Example Error Message**

```
001003 (42000): 01bea28c-0a0b-e7df-0003-040e00eb9a22:
SQL compilation error: syntax error line 1 at position 62 unexpected '<EOF>'.
```

### What This Error Means

- **SQL compilation error** indicates that the database engine could not parse the SQL statement inside the Data Block.
- **Unexpected `<EOF>`** means *End of File*. The SQL parser reached the end of the query before it found what it was expecting (for example, another condition, keyword, or closing character).
- **Position 62** tells you the character offset in the query text where parsing stopped.

### Typical Causes

**Trailing comma** in a column list or WHERE clause.

1.

```
SELECT PORTFOLIOCODE, CURRENCYCODE, FROM HOLDINGSDETAILS
```

**Unfinished logical operator** such as AND or OR at the end of a condition.

```
WHERE PORTFOLIOCODE=? AND
```

**Unclosed string or parenthesis** in the SQL.

```
WHERE PRIMARYSECTORNAME = 'Cash
```

**Stray placeholder (`?`)** or missing parameter mapping.

```
WHERE PORTFOLIOCODE=? AND CURRENCYCODE=? ,
```

### How to Resolve

1. Review the query text carefully around the position reported in the error.
2. Remove unnecessary commas or placeholders.
3. Make sure every `AND`/`OR` is followed by a complete condition.
4. Verify that all strings and parentheses are properly closed.
5. Confirm that every `?` in the query is mapped to a request parameter in the Data Block definition.

## Import Statements Are Not Allowed

**Example Error Message**

```
AppError: Import statements are not allowed in python scripts block. Use python environment block to import allowed libraries.
```

### What This Error Means

This error occurs when an import statement is used inside a Python script Data Block. For security reasons, direct imports are not permitted in these blocks. Allowing imports here would enable unrestricted use of external libraries or modules, which could pose a security risk. See [Restricted Keywords and Functions](https://learn.assette.com/docs/restricted-keywords-and-functions/)

### How to Resolve

- Remove all import statements from the Python script Data Block.
- Use an appropriate dependency Data Block that already includes the environment you need. Examples include:
  - **PythonEnvForDateCalculation** for date-related operations.
  - **CalculationEnv** for general-purpose calculations.

By structuring your dependencies in this way, you can safely leverage approved libraries while maintaining the security and stability of the environment.

## DPF Blocks of Type 'Text' MUST Return a Field with the Name 'text'

**Example Error Message**

```
An Error Occurred
Failed to process the output of data block 'DEMO_DateLabel' due to error:
DPF blocks of type 'Text' MUST return a field with the name 'text'
```

### What This Error Means

This error occurs when a Data Block configured with **Output Type "Text"** does not return a field named text in its response. The Data Processing Framework (DPF) enforces this requirement to ensure text-based outputs are handled consistently across downstream components.

In most cases, the error appears in the **Data Object**, rather than in the Data Block itself, because the block will execute but the Data Object cannot process the incorrectly structured output.

### How to Resolve

Ensure that the Data Block response includes a `text` field when Output Type is set to **Text**. Always return the value directly in response["text"], not wrapped in a list or alternative field.

**Correct:**

```
response["text"] = formatted_date
```

**Incorrect**:

```
response["data"] = [{"text": formatted_date}]
```
