---
title: "session_time written in the wrong SCORM version’s format | SCORM Lab"
canonical_url: "https://scorm-lab.com/errors/session-time-incorrect-data-type"
last_updated: "2026-09-22T15:37:56.367Z"
meta:
  description: "cmi.core.session_time was written in the SCORM 2004 ISO 8601 duration format on a SCORM 1.2 package. 1.2 expects HHHH:MM:SS.SS; the write is rejected outright."
  "og:description": "cmi.core.session_time was written in the SCORM 2004 ISO 8601 duration format on a SCORM 1.2 package. 1.2 expects HHHH:MM:SS.SS; the write is rejected outright."
  "og:title": "session_time written in the wrong SCORM version’s format"
  "twitter:description": "Free in-browser SCORM debugger. Drop a SCORM 1.2 or 2004 .zip to inspect the API transcript, CMI data model, sequencing and lint. Nothing uploaded unless you choose to share."
  "twitter:title": "Debug any SCORM package in your browser, free"
---

# session\_time written in the wrong SCORM version’s format

```
SCORM Error 405: Incorrect Data Type [Element: cmi.core.session_time]
```

cmi.core.session\_time was written in the SCORM 2004 ISO 8601 duration format on a SCORM 1.2 package. 1.2 expects HHHH:MM:SS.SS; the write is rejected outright.

## What it means

The two editions use genuinely different time formats, and neither accepts the other's. SCORM 1.2's CMITimespan is H+:MM:SS with an optional 1–2-decimal fraction of a second — commonly written HHHH:MM:SS.SS, e.g. "0005:23:07.10". SCORM 2004's CMITimespan is an ISO 8601 duration — P, an optional date part, T, then hours/minutes/seconds, e.g. "PT5H23M7S". A 2004-style "PT..." string fails the 1.2 regex outright, the runtime rejects the write with error 405 ("Incorrect Data Type" — this is the same TYPE\_MISMATCH code the engine also returns for other malformed 1.2 values, not specific to time), and whatever session\_time the LMS already held is left unchanged.

## Which authoring tools produce it

A timing helper written once and shared between a 1.2 and a 2004 build without branching its output format — common in hand-rolled wrappers, and in courses ported from a 2004 template to a 1.2 target (or the reverse) where the duration formatter was not updated to match.

## How to confirm it in SCORM Lab

In the Transcript tab, find the SetValue call on cmi.core.session\_time — errorCode 405 sits on that row, and expanding it shows the literal value the SCO tried to write; a leading "PT" is the tell. The CMI tab will then show session\_time unchanged, because the write never took.

## The fix

Format session\_time as HHHH:MM:SS.SS for SCORM 1.2 (hours can run past 24 — up to 4+ digits) and as an ISO 8601 duration (PT#H#M#S) for SCORM 2004. If the formatter is shared code, branch it on the SCORM version the package actually declares rather than hard-coding one format.

[Open the package in SCORM Lab](https://scorm-lab.com/) to see this error fire in the Transcript or Console tab. It runs in your browser, and nothing is uploaded unless you choose to share it.

Still stuck after the fix? Bring the package to a [SCORM consult](https://calendar.lostendfound.com/larry/scorm-consulting).