In Development
Last Updated: 06 Nov 2026 13:43 by ADMIN
Created by: stefano
Comments: 0
Category: Kendo UI for jQuery
Type: Bug Report
1

Bug report

kendo.promptbox.min.js and kendo.chat.min.js each include their own private copy of Kendo's widget registry. That private copy never sets up the ui namespace. When the file tries to register its widget, the registry throws Unknown widget namespace: ui

Reproduction of the problem

Go to this Progress Kendo UI Dojo and run it.

Current behavior

The following error appears for the Kendo UI Chat and PromptBox:

Uncaught Error: Unknown widget namespace: ui

Expected/desired behavior

The components should be working as expected like when using kendo.all.min.js. (Dojo Example)

Environment

  • Kendo/Telerik version: 2026.3.1015
  • jQuery version: 4.0.0
  • Browser: all
Unplanned
Last Updated: 11 Nov 2026 15:23 by ADMIN
Created by: stefano
Comments: 1
Category: Kendo UI for jQuery
Type: Bug Report
0

Similar to the PDI bulk load LAN method create a WAN method to retrieve source data via AppServer procedure calls.

The following are the specs and answers to questions I received for direction:

While we may not be able to pull off ALL of this, here are the basic items that bulk load does (WAN or LAN):
1. Looks up replControl status. If completed, then quit, if “in process” then find last rows (using cache) and continue.
2. Keeps “cache” of the last X rowids processed. There MIGHT be a replProperty of name BULK_MAX_CACHE. If it exists we use that number when keeping cache. Otherwise we default to 25.
3. Every 100k, writes status to a log.
4. Every 100k, updates replControl status
ASSIGN

{&ReplDB}ReplControl.GroupID = "BULKCOPY"
{&ReplDB}

ReplControl.CodeID = "<<SOURCE_DB>>.<<SRC_TABLE>>"

{&ReplDB}ReplControl.CodeVal1 = "IN PROCESS"
{&ReplDB}

ReplControl.CodeVal2 = STRING(TODAY) + "-" + STRING(TIME,"HH:MM:SS")

{&ReplDB}

ReplControl.CodeVal3 = "Count=" + STRING(intRecordNum) + ";RowidCache=" + strRowidCache.

For WAN we do:
1. Lookup APPSRV_FETCH_COUNT_BULK replProperty. If available we use this value, otherwise 1000.
2. Run Appserver “get” program (strASmProcDir + "/get_<<SOURCE_DB>>_<<SRC_TABLE>>.p") and request a “batch” of rows. The signature is:
INPUT INTEGER(cMassFetchLimit),
INPUT strRowidCache,
INPUT TABLE tt_RQ, /* 75110 */
OUTPUT TABLE bfrSrc<<SRC_TABLE25>>,
OUTPUT strStatus
3. Loop through multi-iterations of appserver calls, doing the 100k stuff as appropriate.

Q&A:
Do you think we should limit the number of errors by table? For example some issue is causing every row of a table to error so should they all be writing to ReplQueue or stop table load after X number of errors? I like this idea. We should probably make it property driven? If the property is not there, then don’t stop (currently functionality), if it is there and is a number and errors exceed the number then bail on that table?

How should higher level errors be handled like unable to connect to target database for table? Write the error to the table log and bail.

When inserting into ReplQueue I won’t have access to DBTASKID from SQL so what should I put in the SrcTransID? set it as 0

Unplanned
Last Updated: 23 Oct 2026 13:49 by ADMIN
Created by: Michael D
Comments: 1
Category: Kendo UI for jQuery
Type: Bug Report
0

The Kendo Chart widget's documentation describes the setting messages.noData. However, it is missing in the typescript typings.

The documentation matches the source code, but the typings do not.

Unplanned
Last Updated: 27 Oct 2026 09:42 by ADMIN
Scheduled for 2026 Q4
Created by: Tom
Comments: 2
Category: Kendo UI for jQuery
Type: Bug Report
1

Description

When navigating in Grid with default/default-ocean-blue-a11y theme the border is gray, while it should be black

Steps to Reproduce

Steps to reproduce the behavior:

1. Open the demos: https://demos.telerik.com/kendo-ui/grid/keyboard-navigation?autoRun=true&theme=default-ocean-blue-a11y or https://www.telerik.com/kendo-angular-ui/components/grid/keyboard-navigation
2. Select the Default theme Ocean Blue A11Y swatch

Expected Behavior

The border color of the focused elements should be black.

Actual Behavior

The border color is gray

image-20261020-114218.png

Version Information

Working Version

  • Version: 14.1.0

Broken Version

  • Version: 14.5.0

Environment Information

Affected Theme(s)

  • Default theme

Affected Suites

  • Kendo UI for jQuery
  • Kendo UI for Angular
  • Kendo UI for React
  • Kendo UI for Vue
  • Telerik UI for Blazor
  • Telerik UI for ASP.NET Core
  • Telerik UI for ASP.NET MVC

Browser Information

  • All browsers

Impact Assessment

Severity

  • Low - Minor visual issue
In Development
Last Updated: 04 Nov 2026 07:53 by ADMIN

Kendo grid in version  2026.3.811 moves scroll to start when navigatable: true in RTL. It makes impossible to edit. 
Same setting in version 2025.3.812 works well.

Same grid configuration with different kendo version dojo:

dojo with scroll jump 2026.3.811

dojo normal work 2025.3.812


<!DOCTYPE html>
<html>
<head>
    <base href="https://demos.telerik.com/kendo-ui/grid/right-to-left-support">
    <style>html { font-size: 14px; font-family: Arial, Helvetica, sans-serif; }</style>
    <title></title>
    <link href="https://kendo.cdn.telerik.com/themes/14.6.1/meridian/meridian-main.css" rel="stylesheet" />
    <script src="https://code.jquery.com/jquery-3.7.0.min.js"></script>
    
    
    
    <script src="https://kendo.cdn.telerik.com/2026.3.1015/js/kendo.all.min.js"></script>
    
    
</head>
<body>
    <script src="../content/shared/js/products.js"></script>

<div id="example">
    <div class="k-rtl">
        <div id="grid"></div>
    </div>

    <script>
      	const columns = [
    {
        "title": " ",
        "field": "IS_CHECKED",
        "type": "string",
        "width": 45
    },
    {
        "title": " ",
        "field": "IS_PERIOD_LOCKED",
        "type": "string",
        "width": 100
    },
    {
        "title": " ",
        "field": "HAS_COPY_ROW",
        "type": "number",
        "width": 45
    },
    {
        "title": "STATUS_VAL",
        "field": "STATUS_VAL",
        "type": "string",
        "width": 45
    },
    {
        "title": "קוד עובד",
        "field": "CHANNEL_CODE",
        "type": "string",
        "width": "155px"
    },
    {
        "title": "שם העובד",
        "field": "CHANNEL_NAME",
        "type": "string",
        "width": "155px"
    },
    {
        "title": "Sales Type",
        "field": "FLEX1",
        "type": "string",
        "width": "135px"
    },
    {
        "title": "Amount",
        "field": "QUANTITY",
        "type": "number",
        "width": "120px"
    },
    {
        "title": "Amount Type",
        "field": "FLEX4",
        "type": "string",
        "width": "145px"
    },
    {
        "title": "FOP",
        "field": "FLEX5",
        "type": "string",
        "width": "120px"
    },
    {
        "title": "Product",
        "field": "FLEX6",
        "type": "string",
        "width": "120px"
    },
    {
        "title": "Customer Type",
        "field": "FLEX7",
        "type": "string",
        "width": "165px"
    },
    {
        "title": "Customer",
        "field": "FLEX8",
        "type": "string",
        "width": "115px"
    },
    {
        "title": "Order Date",
        "field": "FLEX9",
        "type": "string",
        "width": "135px"
    },
    {
        "title": "file row",
        "field": "FILE_ROW_NUMBER",
        "type": "string",
        "width": "115px"
    },
    {
        "title": "file name",
        "field": "FILE_NAME",
        "type": "string",
        "width": "125px"
    },
    {
        "title": "דשגשדג",
        "field": "FLEX135",
        "type": "string",
        "width": "120px"
    },
    {
        "title": "lov search",
        "field": "FLEX2",
        "type": "string",
        "width": "135px"
    },
    {
        "title": "Date field",
        "field": "FLEX10",
        "type": "date",
        "width": "135px"
    },
    {
        "title": "steve",
        "field": "FLEX55",
        "type": "string",
        "width": "120px"
    },
    {
        "title": "My file",
        "field": "FLEX15",
        "type": "string",
        "width": "120px"
    },
    {
        "title": "Approval Description",
        "field": "APPROVAL_DESC",
        "type": "string",
        "width": "235px"
    },
    {
        "title": "Approval Status",
        "field": "APPROVAL_STATUS",
        "type": "string",
        "width": "185px"
    },
    {
        "title": "CheckCFLEX",
        "field": "CFLEX116",
        "type": "boolean",
        "width": "135px"
    },
    {
        "title": "BBBBBBBB123",
        "field": "CFLEX117",
        "type": "string",
        "width": "145px"
    },
    {
        "title": "aaa",
        "field": "CFLEX54",
        "type": "string",
        "width": "120px"
    },
    {
        "title": "AAAAAAA123",
        "field": "CFLEX3",
        "type": "string",
        "width": "135px"
    },
    {
        "title": "Creation date -CF",
        "field": "CFLEX26",
        "type": "date",
        "width": "205px"
    }
];
      	const data = [
    {
        "IS_PERIOD_LOCKED": "N",
        "HAS_COPY_ROW": 7,
        "STATUS_VAL": "",
        "CHANNEL_CODE": "GS100",
        "CHANNEL_NAME": "GS100",
        "FLEX1": "",
        "QUANTITY": 542.8,
        "FLEX4": "454646",
        "FLEX5": "",
        "FLEX6": "AAAA",
        "FLEX7": "",
        "FLEX8": "reerwe",
        "FLEX9": "g",
        "FILE_ROW_NUMBER": "",
        "FILE_NAME": "",
        "FLEX135": "",
        "FLEX2": "",
        "FLEX10": null,
        "FLEX55": "",
        "FLEX15": "245",
        "APPROVAL_DESC": "The text for REJECTION 2",
        "APPROVAL_STATUS": "N",
        "CFLEX116": false,
        "CFLEX117": "",
        "CFLEX54": "",
        "CFLEX3": "",
        "CFLEX26": null
    },
    {
        "IS_PERIOD_LOCKED": "N",
        "HAS_COPY_ROW": 2,
        "STATUS_VAL": "",
        "CHANNEL_CODE": "GS105",
        "CHANNEL_NAME": "GS105",
        "FLEX1": "",
        "QUANTITY": 542.8,
        "FLEX4": "454646",
        "FLEX5": "",
        "FLEX6": "AAAA",
        "FLEX7": "",
        "FLEX8": "reerwe",
        "FLEX9": "g",
        "FILE_ROW_NUMBER": "",
        "FILE_NAME": "",
        "FLEX135": "",
        "FLEX2": "",
        "FLEX10": null,
        "FLEX55": "",
        "FLEX15": "240",
        "APPROVAL_DESC": "The text for approval",
        "APPROVAL_STATUS": "Y",
        "CFLEX116": false,
        "CFLEX117": "",
        "CFLEX54": "",
        "CFLEX3": "",
        "CFLEX26": null
    },
    {
        "IS_PERIOD_LOCKED": "N",
        "HAS_COPY_ROW": 6,
        "STATUS_VAL": "",
        "CHANNEL_CODE": "GS106",
        "CHANNEL_NAME": "GS106",
        "FLEX1": "",
        "QUANTITY": 142.8,
        "FLEX4": "454646",
        "FLEX5": "",
        "FLEX6": "BBBB",
        "FLEX7": "",
        "FLEX8": "reerwe",
        "FLEX9": "g",
        "FILE_ROW_NUMBER": "",
        "FILE_NAME": "",
        "FLEX135": "",
        "FLEX2": "",
        "FLEX10": null,
        "FLEX55": "",
        "FLEX15": "242",
        "APPROVAL_DESC": "The text for approval",
        "APPROVAL_STATUS": "Y",
        "CFLEX116": false,
        "CFLEX117": "",
        "CFLEX54": "",
        "CFLEX3": "",
        "CFLEX26": null
    },
    {
        "IS_PERIOD_LOCKED": "N",
        "HAS_COPY_ROW": 3,
        "STATUS_VAL": "",
        "CHANNEL_CODE": "GS107",
        "CHANNEL_NAME": "GS107",
        "FLEX1": "",
        "QUANTITY": 542.8,
        "FLEX4": "454646",
        "FLEX5": "",
        "FLEX6": "AAAA",
        "FLEX7": "",
        "FLEX8": "reerwe",
        "FLEX9": "g",
        "FILE_ROW_NUMBER": "",
        "FILE_NAME": "",
        "FLEX135": "",
        "FLEX2": "",
        "FLEX10": null,
        "FLEX55": "",
        "FLEX15": "241",
        "APPROVAL_DESC": "The text for approval",
        "APPROVAL_STATUS": "Y",
        "CFLEX116": false,
        "CFLEX117": "",
        "CFLEX54": "",
        "CFLEX3": "",
        "CFLEX26": null
    },
    {
        "IS_PERIOD_LOCKED": "N",
        "HAS_COPY_ROW": 5,
        "STATUS_VAL": "",
        "CHANNEL_CODE": "GS100",
        "CHANNEL_NAME": "GS100",
        "FLEX1": "",
        "QUANTITY": 600,
        "FLEX4": "454646",
        "FLEX5": "",
        "FLEX6": "BBBB",
        "FLEX7": "",
        "FLEX8": "reerwe",
        "FLEX9": "g",
        "FILE_ROW_NUMBER": "",
        "FILE_NAME": "",
        "FLEX135": "",
        "FLEX2": "",
        "FLEX10": null,
        "FLEX55": "",
        "FLEX15": "240",
        "APPROVAL_DESC": "The text for approval 2",
        "APPROVAL_STATUS": "Y",
        "CFLEX116": false,
        "CFLEX117": "",
        "CFLEX54": "",
        "CFLEX3": "",
        "CFLEX26": null
    },
    {
        "IS_PERIOD_LOCKED": "N",
        "HAS_COPY_ROW": 2,
        "STATUS_VAL": "",
        "CHANNEL_CODE": "GS105",
        "CHANNEL_NAME": "GS105",
        "FLEX1": "",
        "QUANTITY": 234,
        "FLEX4": "454646",
        "FLEX5": "",
        "FLEX6": "AAAA",
        "FLEX7": "",
        "FLEX8": "reerwe",
        "FLEX9": "g",
        "FILE_ROW_NUMBER": "",
        "FILE_NAME": "",
        "FLEX135": "",
        "FLEX2": "",
        "FLEX10": null,
        "FLEX55": "",
        "FLEX15": "240",
        "APPROVAL_DESC": "",
        "APPROVAL_STATUS": "",
        "CFLEX116": false,
        "CFLEX117": "",
        "CFLEX54": "",
        "CFLEX3": "",
        "CFLEX26": null
    },
    {
        "IS_PERIOD_LOCKED": "N",
        "HAS_COPY_ROW": 2,
        "STATUS_VAL": "",
        "CHANNEL_CODE": "GS106",
        "CHANNEL_NAME": "GS106",
        "FLEX1": "",
        "QUANTITY": 255,
        "FLEX4": "454646",
        "FLEX5": "",
        "FLEX6": "AAAA",
        "FLEX7": "",
        "FLEX8": "reerwe",
        "FLEX9": "g",
        "FILE_ROW_NUMBER": "",
        "FILE_NAME": "",
        "FLEX135": "",
        "FLEX2": "",
        "FLEX10": null,
        "FLEX55": "",
        "FLEX15": "240",
        "APPROVAL_DESC": "",
        "APPROVAL_STATUS": "",
        "CFLEX116": false,
        "CFLEX117": "",
        "CFLEX54": "",
        "CFLEX3": "",
        "CFLEX26": null
    },
    {
        "IS_PERIOD_LOCKED": "N",
        "HAS_COPY_ROW": 2,
        "STATUS_VAL": "",
        "CHANNEL_CODE": "GS107",
        "CHANNEL_NAME": "GS107",
        "FLEX1": "",
        "QUANTITY": 12,
        "FLEX4": "454646",
        "FLEX5": "",
        "FLEX6": "AAAA",
        "FLEX7": "",
        "FLEX8": "reerwe",
        "FLEX9": "g",
        "FILE_ROW_NUMBER": "",
        "FILE_NAME": "",
        "FLEX135": "",
        "FLEX2": "",
        "FLEX10": null,
        "FLEX55": "",
        "FLEX15": "240",
        "APPROVAL_DESC": "",
        "APPROVAL_STATUS": "",
        "CFLEX116": false,
        "CFLEX117": "",
        "CFLEX54": "",
        "CFLEX3": "",
        "CFLEX26": null
    }
]; 
      const fields = {
    "IS_CHECKED": {
        "type": "",
        "hidden": false,
        "filterable": false,
        "sortable": false
    },
    "CHANNEL_ID": {
        "editable": false,
        "type": "number",
        "hidden": true,
        "defaultValue": -1
    },
    "ITEM_ID": {
        "editable": false,
        "type": "number",
        "hidden": true,
        "defaultValue": -1
    },
    "IS_PERIOD_LOCKED": {
        "editable": false,
        "type": "string",
        "hidden": false,
        "defaultValue": "N",
        "sortable": false
    },
    "HAS_COPY_ROW": {
        "editable": false,
        "type": "number",
        "hidden": false,
        "defaultValue": 0,
        "sortable": false
    },
    "ROWID": {
        "editable": false,
        "type": "string",
        "hidden": true,
        "defaultValue": "-1"
    },
    "CHANNEL_CODE": {
        "hidden": false,
        "type": "string"
    },
    "CHANNEL_NAME": {
        "hidden": false,
        "type": "string"
    },
    "MANUALLY_CHANGED": {
        "editable": false,
        "type": "string",
        "hidden": true,
        "defaultValue": "N"
    },
    "FLEX1": {
        "type": "string",
        "hidden": false
    },
    "QUANTITY": {
        "type": "number",
        "hidden": false
    },
    "FLEX4": {
        "type": "string",
        "hidden": false
    },
    "FLEX5": {
        "type": "string",
        "hidden": false
    },
    "FLEX6": {
        "type": "string",
        "hidden": false
    },
    "FLEX7": {
        "type": "string",
        "hidden": false
    },
    "FLEX8": {
        "type": "string",
        "hidden": false
    },
    "FLEX9": {
        "type": "string",
        "hidden": false
    },
    "FILE_ROW_NUMBER": {
        "type": "string",
        "hidden": false
    },
    "FILE_NAME": {
        "type": "string",
        "hidden": false
    },
    "FLEX135": {
        "type": "string",
        "hidden": false
    },
    "FLEX2": {
        "type": "string",
        "hidden": false
    },
    "FLEX10": {
        "type": "date",
        "hidden": false
    },
    "FLEX55": {
        "type": "string",
        "hidden": false
    },
    "FLEX15": {
        "type": "string",
        "hidden": false
    },
    "APPROVAL_DESC": {
        "type": "string",
        "hidden": false
    },
    "APPROVAL_STATUS": {
        "type": "string",
        "hidden": false
    },
    "CFLEX116": {
        "type": "boolean",
        "hidden": false
    },
    "CFLEX117": {
        "type": "string",
        "hidden": false
    },
    "CFLEX54": {
        "type": "string",
        "hidden": false
    },
    "CFLEX3": {
        "type": "string",
        "hidden": false
    },
    "CFLEX26": {
        "type": "date",
        "hidden": false
    }
};
        $(document).ready(function() {
            $("#grid").kendoGrid({
                dataSource: {
                    data: data,
                    schema: {
                        model: {
                            fields: fields
                        }
                    },
                    pageSize: 20
                },
              	columns: columns,
                height: 550,
              	navigatable: true,
                sortable: true,
                groupable: true,
                resizable: true,
                pageable: true,
                
            });
        });
    </script>
</div>



</body>
</html>

In Development
Last Updated: 05 Nov 2026 13:49 by ADMIN

Product: Kendo UI for jQuery — TreeList (also related Grid issues below)
Version: 2026.2.520 (2026 Q2), jQuery 3.5.1
Browser / AT: Google Chrome 155 (Windows 11) with NVDA (latest)
Severity: Accessibility (WCAG 2.2 SC 1.3.1 Info and Relationships)

Summary
In a TreeList that has a locked column, NVDA announces the locked column's header instead of the current column's header when keyboard focus moves to a cell in the scrollable part.

A Grid with the same layout (locked column + scrollable columns + hidden columns) is announced correctly, so the problem seems specific to how the TreeList builds its accessible table (`role="treegrid"` with rows assembled through `aria-owns`).

Here is a Dojo showing the issue: https://dojo.telerik.com/QYJCWJUj

Steps to reproduce
1. Create a TreeList with `navigatable: true`, one or more locked columns (including a hidden locked column) and several unlocked columns (sample here).
2. Open it in Chrome with NVDA running.
3. Click a cell in the first unlocked column ("April"), or Tab into the TreeList and use the arrow keys to reach it.

Expected
NVDA announces the cell, its row and its own column header, e.g.:
`0 / 8, row 2, April, column 2`

Actual
NVDA announces the locked column's header and wrong column number:
`0 / 8  April  row 2  Hierarchy  column 4`

Sample
<div id="treelist"></div>
<script>
  $("#treelist").kendoTreeList({
    navigatable: true,
    height: 300,
    dataSource: {
      data: [
        { id: 1, parentId: null, name: "Region A", apr: "0 / 8", may: "1 / 8", jun: "2 / 8", jul: "3 / 8" },
        { id: 2, parentId: 1, name: "Store 1", apr: "0 / 2", may: "1 / 2", jun: "2 / 2", jul: "2 / 2" }
      ],
      schema: { model: { id: "id", parentId: "parentId", expanded: true } }
    },
    columns: [
      { field: "id", title: "Id", hidden: true, locked: true, width: 80 },
      { field: "name", title: "Hierarchy", locked: true, width: 220 },
      { field: "mar", title: "March", hidden: true, width: 120 },
      { field: "apr", title: "April", width: 120 },
      { field: "may", title: "May", width: 120 },
      { field: "jun", title: "June", width: 120 },
      { field: "jul", title: "July", width: 120 }
    ]
  });
</script>

Moving right through the unlocked columns keeps announcing "Hierarchy" as the column header. The correct header is only heard because each cell's `aria-describedby` points to its header cell.

What we checked in the DOM
- The `role="treegrid"` table owns the `thead` and `tbody` row groups (`aria-owns`).
- The header row and every data row each own the same number of cells (locked cells first, then scrollable cells) in the same order. No element is owned twice.


Unplanned
Last Updated: 06 Oct 2026 11:38 by ADMIN
When a DropDownList uses virtual: true together with a grouped data source (group: { field: "..." }) and a fixedGroupTemplate, each rendered group <ul role="group"> gets an aria-labelledby pointing at its group header <li>, with an id like <optionId>-group-<index>-<groupValue>. The group currently under the sticky header (.k-list-group-sticky-header), usually group 0, has no inline header <li> because its name is shown in the sticky header. Its aria-labelledby is still set, though, so it points at an id that doesn't exist. Accessibility checkers such as WAVE report this as a "Broken ARIA reference". Looking at VirtualList._createGroupUl, aria-labelledby is always set from _generateGroupId(...), but the header <li> with that id is only created when hasHeader is true.

To reproduce (Kendo UI for jQuery 2026 Q2): create a DropDownList with virtual: { itemHeight: 26, valueMapper: ... }, groupTemplate and fixedGroupTemplate, and a data source grouped on a field with at least two groups. Open the popup and inspect the list. The second group's aria-labelledby resolves to its header <li>. The first group's aria-labelledby (for example ...-group-0-Client-Sets) matches no element in the DOM. Expected: every group's aria-labelledby points at an element that exists. For the headerless group that could be the sticky header, if it's given an id, or the attribute could be left off. As a workaround, we give the sticky header an id and use a MutationObserver to repoint any dangling aria-labelledby at it.
Completed
Last Updated: 08 Oct 2026 08:12 by ADMIN
Release 2026 Q4 (Oct)
Created by: Anthony
Comments: 0
Category: Kendo UI for jQuery
Type: Bug Report
0

Bug report

Following the commands in the following article

https://www.telerik.com/kendo-jquery-ui/documentation/intro/installation/ecmascript

and the steps for version after February 2026 - https://www.telerik.com/kendo-jquery-ui/documentation/intro/installation/ecmascript

when running npm run scripts: custom command or npm run build: custom an error is thrown:

Error: spawn npx ENOENT

at ChildProcess._handle.onexit (node:internal/child_process:287:19)

at onErrorNT (node:internal/child_process:525:16)

at process.processTicksAndRejections (node:internal/process/task_queues:90:21)

Emitted 'error' event on ChildProcess instance at:

at ChildProcess._handle.onexit (node:internal/child_process:293:12)

at onErrorNT (node:internal/child_process:525:16)

at process.processTicksAndRejections (node:internal/process/task_queues:90:21) {

Expected/desired behavior

A custom folder containing a custom script wth only the needed components should be created.

Environment

  • Kendo/Telerik version: 2026.3.811
  • Browser: [all ]
Completed
Last Updated: 07 Oct 2026 08:42 by ADMIN
Release 2026 Q4 (Oct)
Created by: Anthony
Comments: 0
Category: Kendo UI for jQuery
Type: Bug Report
0

Bug report

Reproduction of the problem

Follow the stpes described in the link below:

https://www.telerik.com/kendo-jquery-ui/documentation/intro/installation/ecmascript#manually-building-the-source-code

Current behavior

When running the npm run build error appear Cannot find package 'glob' imported from …..\kendoui.for.jquery.2026.3.811.source\src\rolldown.config.mjs

Expected/desired behavior

There should be no error and the kendo scripts should be built as expected.

  • Kendo/Telerik version: 2026.3.811
  • Browser: [all ]
Unplanned
Last Updated: 04 Sep 2026 05:46 by Fajleabbas
Created by: Fajleabbas
Comments: 1
Category: Kendo UI for jQuery
Type: Feature Request
1

Hi Team,

I would like to request the sv-FI and da-DK culture files to be updated - specifically the date format "d".  Using .NET, the culture file does not match CultureInfo(For example, sv-FI):

| Environment              | Culture | Short Date Format |
| ------------------------ | ------- | ----------------- |
| .NET Framework 4.8 / NLS | `sv-FI` | `dd-MM-yyyy`      |
|  Kendo UI 2026           | `sv-FI` | `dd-MM-yyyy`      |
| .NET 8/10 / ICU          | `sv-FI` | `yyyy-MM-dd`      |
Please update the format to 'yyyy-MM-dd' in the Kendo UI Culture file.

Thank you!

Completed
Last Updated: 07 Oct 2026 08:42 by ADMIN
Release 2026 Q4 (Oct)
Created by: Support
Comments: 0
Category: Kendo UI for jQuery
Type: Bug Report
0

Bug report

Current behavior

Errors during build process:

(replace-metadata plugin) [SOURCEMAP_BROKEN] Sourcemap is likely to be incorrect: a plugin (replace-metadata) was used to transform files, but didn't generate a sourcemap for the transformation. Consult the plugin documentation for help: https://rolldown.rs/guide/troubleshooting#warning-sourcemap-is-likely-to-be-incorrect

Expected/desired behavior

There should be no errors

TicketID:

1716119

Completed
Last Updated: 27 Aug 2026 10:58 by ADMIN
Release 2026 Q3

In Kendu UI 2026 Q2 (version 520) file kendo.all.d.ts

The interface IChatOptions has a duplicate defintion for the messageTemplate

Line 3849:

messageTemplate?: MessageTemplateFunction | null;

Lines 3916/3917   

/** Template for rendering individual messages */

messageTemplate?: MessageTemplateFunction | null;


Pending Review
Last Updated: 22 Jun 2026 12:38 by Software
Created by: Software
Comments: 0
Category: Kendo UI for jQuery
Type: Feature Request
2

Hi,

I've followed your AI integration example but I noticied that when I use the updateMessage method for some reason the chat scroll move toward the start of the message. Maybe I'm wrong but looking at the source code I think that the problem is the chat-widget.js inside this method


_refreshStandardSync(message, isOwnMessage, wasNearBottom) {
        if (!message) {
            return;
        }
        this.renderMessage(message);
        if (isOwnMessage) {
            this.scrollToBottom();
        }
        else if (wasNearBottom && message.uid) {
            this.view.scrollIncomingMessage(message.uid);
        }
    }
I think that if the message is mine is correct that the chat scrolls to the bottom, but maybe the code in the other users branch can lead into this effect. The desired behaviour is giving a Chat-GPT UX, so if the user isn't scrolling the chat must scroll to the bottom, if the user scrolls the chat must keep user position. Actually in my opinion the chat is not fully designed to support streaming token AI, but maybe my code has some problems.


This is my code to manage streaming token AI and kendo chat initialization



$("#copilotChat").kendoChat({
	authorId: "user",
	height: "100%",
	messageBox: {
		mode: "auto"
	},
	fileAttachment: false,
	speechToText: false,
	messageWidthMode: "full",
	skipSanitization: true,
	sendMessage: function (e) {
		if (e.generating) {
			//cancelling request, code omitted
		}
		else {
			//new request, code omitted
		   
		}
	}
});

//receive message via SSE (code omitted)

const chat = $("#copilotChat").data("kendoChat");
let messageObject = chat.dataSource.get(params.runId);

dashboardProposal.currentCopilotChatText += params.content;
if (messageObject) {
	const markdown = markdownInstance.parse(dashboardProposal.currentCopilotChatText);
	chat.updateMessage(messageObject, { text: markdown });
}
else {
	chat.postMessage({
		authorId: "assistant",
		authorName: app.i18n("advice_dashboardProposal_authorNameCopilot"),
		text: params.content,
		id: params.runId
	});
}

I believe this feature would greatly facilitate the integration of AI token streaming into web applications.
Thanks in advance
Completed
Last Updated: 07 Oct 2026 08:42 by ADMIN
Release 2026 Q4 (Oct)

I am using the Kendo-UI Grid's resizeColumn method do change column widths programmatically (e.g., to distribute column widths by our own custom rules). I have noticed that doing so sometimes leads to unexpected results as demonstrated in this DOJO:

Assume a grid with two columns: one has a fixed size of 200px and the other has no explicit width set.

In the first example, we programmatically set the first column's width to 200px (which should not change anything since the column already is 200px wide. 

grid.resizeColumn(column, 200);

This works as expected.

In the second example, we programmatically set the first column's width first to 20px and then immediately to 200px. I would expect the final outcome to be the same, since the second column should compensate.

grid.resizeColumn(column, 20);
grid.resizeColumn(column, 200);

However, the second column does not shrink and the overall grid grows larger instead. Doing this repeatedly causes the columns to grow larger and larger over time.

Of course, this is a simplified example and I do not call resizeColumn() twice right after each other.

Completed
Last Updated: 27 Aug 2026 07:35 by ADMIN
Created by: Michael D
Comments: 3
Category: Kendo UI for jQuery
Type: Bug Report
0

The @progress/kendo-ui npm package creates the following dependency tree:

@progress/kendo-ui 2026.1.415
 |
  - @progress/kendo-pdfviewer-common ^0.6.4 -> 0.6.4
    |
     - pdfjs-dist 4.6.82 -> 4.6.82
       |
        - canvas ^2.11.2 -> 2.11.2
          |
           - @mapbox/node-pre-gyp ^1.0.0 -> 1.0.11
             |
              - tar ^6.1.11 -> 6.2.1

All packages have been updated to the latest version possible.

Versions <= 7.5.10 of tar have multiple known vulnerabilities:


Completed
Last Updated: 27 Aug 2026 08:02 by ADMIN
Release 2026 Q2

When you have a simple kendodropdown list that is set to adaptiveMode = "auto", resizing the browser throws. This can be reproduced on your demo pages.

Steps to reproduce:

  1. use this Dojo: https://dojo.telerik.com/LHJLQgzy which was created from your demo page
  2. Ensure the browser is narrow enough to be considered mobile
  3. run the project
  4. confirm dropdown is functional
  5. resize the browser to desktop size
  6. the dropdown list stops working and throws

 

kendo.virtuallist.js:2890 Uncaught TypeError: Cannot read properties of undefined (reading 'style')

Completed
Last Updated: 14 Jul 2026 10:33 by ADMIN
Created by: JEAN CHARLES
Comments: 1
Category: Kendo UI for jQuery
Type: Bug Report
0

To reproduce :
go to official dojo https://dojo.telerik.com/PfhfyBzh

select all text (ctrl+A) (or select text with image at the same time with mouse)

Start dragging the selection

---> the error occurs (check console devTools)

Uncaught TypeError: Cannot read properties of undefined (reading '_destroyResizeHandles')

The error occurs here :

let fe = u.extend({
            create: function(e) {
                let t = this;
                a(e.body).on(`dragstart` + S, function() {
                    var t = x.nodes(e.getRange())
                      , n = !1;
                    t.forEach(function(e) {
                        e.nodeName === `IMG` && (n = !0)
                    }),
                    n && t.length > 1 && e.elementResizing._destroyResizeHandles()

your algorithm find one image in the selection and assume we are resizing and try to call "_destroyResizeHandles"

I think you should test before calling this method so it should be :

n && t.length > 1 && e.elementResizing && e.elementResizing._destroyResizeHandles()

 

 

 

 

Unplanned
Last Updated: 13 Mar 2026 09:30 by ADMIN
Created by: Trena
Comments: 1
Category: Kendo UI for jQuery
Type: Feature Request
0

I am currently using the ANDI accessibility tool and have encountered an accessibility issue with the tooltip icons across my application.

The tool reports an "Aria-Hidden Alert" stating: "Element is focusable but has or is contained by [aria-hidden = true]."  The tool also reports as "Keyboard Access Alerts" which states" "Focusable element is not in keyboard tab order; should it be tabbable"?

The HTML for these elements shows aria-hidden = true and focusable = false. I believe the focusable attribute should be set to true.

I have attempted to resolve this using JavaScript to directly removing aria-hidden = true and changing focusable to true.  However, there is no built-in configuration in Kendo UI for ASP.NET MVC to customize these accessibility attributes for tooltip icons therefore it didn't work.

Can you make the icons customizable?

I am including a screenshot of the code.

Completed
Last Updated: 22 Oct 2026 09:39 by ADMIN

I created a forum post and it was suggested that I create a feature request for improved Kendo Grid keyboard accessibility when the grid contains locked columns and/or clickable elements such as buttons, links, and input boxes. I noted the following issues that I feel should be supported without having to write a bunch of workarounds or create a poor user experience for regular (mouse and keyboard) users. 

This is an urgent concern because many of our clients are requiring our site to meet accessibility standards and with the heavy use of Kendo grids in their current state, it does not seem to.

I have a grid with 2 locked columns with a button in the first column and a hyperlink in the second column, the other columns just have text. I set navigatable to true. None of my fields are editable.

Here is a dojo: https://dojo.telerik.com/KUcMekCh

When the user tabs to the grid, they first get the search bar in my custom grid toolbar. Next they tab to the button (which happens to be a bootstrap dropdown menu but I don't think that is relevant). Here is where the issues start:

  1. They then hit tab again and sometimes are taken to the hyberlink while other times they are taken to the next row, skipping column 2's hyperlink. 
  2. The grid does not always enter Kendo's navigation mode. When it doesn't, there is no way for the user to interact with the column header which has the sort and tooltip buttons in it.
  3. When they get to the bottom of the grid, the locked side will scroll vertically but the unlocked side remains in place, causing the rows to be misaligned.
  4. When an input cell is in the unlocked portion of the table, the user has to tab through the entire list before getting back to editing the input for a row. This isn't logical.
  5. I worry that if there were editable cells, which some of my grids have, the user won't be able to tab to the next editable cell and instead will be forced to navigate through every cell. I don't want to make it more difficult for a normal user in order to accommodate a keyboard only user so there needs to be a way for both to work well.
  6. Often the focus ends up on the unlocked table which attempts to put a blue outline around that, however, the outline isn't fully visible since that is inside of a scrollable div.
  7. You can click into a cell with navigatable set to true and then use the navigation but that doesn't work for a keyboard only user.
  8. When navigatable is not turned on, the user cannot scroll vertically if they tab to the table.
Unplanned
Last Updated: 10 Mar 2026 14:52 by ADMIN

We use the KendoUI for jQuery framework in the enterprise SaaS application we create. Giving our clients access to their data and being able to provide a mechanism where a client could build out some of their own functionality on our Saas platform (ie accessing the Data, webservices etc) is highly desirable.

Our front end is based on a MicroUI approach, so if the client can vibecode building a new microUI, the UI experience with the other microUI we provide would be seamless. Examples might be: Create a Scheduler view showing all the European Holidays in 2026, or create a grid view populated with all the customers who have not transacted in 2025 and show their linkedin link/profile.

We can easily wrap any vide coded application into our application now using the microUI approach, but what we dont get is the same look and feel, themes and components being used. It is this we are looking to solve.

1 2 3 4 5 6