Plain text notes not displaying in DTTG


I’m using DTTG 3.2.3(17155) on iPhone 13 Pro, iPad mini 6

All plain text documents are being displayed as a blank screen.

I’m using synced databases using iCloud kit.

Any plain text notes created on the Mac do not display once they’ve downloaded.

If I create a plain text document in DTTG and then go back into it, it displays a blank screen.

If I then try typing, nothing appears, however if I go into DevonThink on the Mac it displays what I typed on a new line.

Rich text notes seem to be working fine, so not sure why plain text is a problem, any ideas?

I’ve also deleted the app and re-installed it, to see if that fixed the problem.

I appreciate any ideas given


Welcome @Ads
There is a regression in the 3.2.3 build of DEVONthink To Go. An issue has been filed.
If you need to create plain text files in the meantime, using Markdown would allow you to do so.​
Thanks for your patience and understanding.

1 Like

This is not good news…
I use DTTG to store lectures and lessons for different university courses. I arrived to give seminars today, opened DTTG and my records and plans were invisible. I was saved by having not deleted DTTG 2 - my database text files were visible in there.

This is concerning because DTTG and DT are databases and to have files become unusable reflects badly on the software. It’s not a bug in a word processor application, for example, whereby you might use a different application to write until the bug is fixed.

Also, did nobody at Devon Technologies check that file formats were working after the upgrade?

1 Like

As an emergency workaround, you can convert the note to rich text, and it will then display in DTTG.

(However, if your phone is in dark mode at the time of the conversion, the converted document seems to end up as black text on a black background when it syncs to the Mac, even though it looks fine and has a white background in DTTG.)


I’m also facing same issue, files with extention .txt are blank… is there a fix coming ?

1 Like

See my reply above and yes, but not immediately.

Starting new files in Markdown isn’t a problem.

Not being able to read hundreds of existing teaching notes and student lesson records is.

1 Like

Can you give us a clearer idea of how long this might take to fix? Not being able to view plain-text files is a major problem for my daily workflow, and converting to rich text is not solving the issue in my case.

1 Like

Welcome @bnphill

Sorry but we don’t issue development timeframes. Keep an eye on our blog for word of an update. Thanks!

My expensive research software suddenly can’t display the vast majority of my notes. We’re talking about rendering plain text files, just about the most basic functionality there is. The app is fundamentally broken for me until this is fixed.

I understand that you don’t share development timelines, but I’m working on a deadline. I can’t afford to wait indefinitely to be able to view txt files. My goodness.


Open the file in an external editor using the share menu


If you’re working with numerous notes and citations, sharing each to an external editor to read is unworkable.

When you tried this approach (to get your out of this jam temporarily), what was the major hurdles you found? Perhaps others here can assist.


I might look at around twenty documents per day (notes and paragraphs related to journal papers), to use for academic work. In my teaching, I would look at perhaps ten student records during the day to see their progress and add the latest notes. I guess I’d need to access (read and edit) thirty plain text documents in an average working day.

So the hurdle is I don’t have the energy or patience to share each document to an external editor to work with, and if all I can see is the titles of the documents, how do I quickly confirm the content is the research/citations I need? The content is invisible.

As a quick solution I used DTTG2 which was still on my ipad. I could still access all my old notes etc. I’m not putting any new notes into DTTG3 until it’s fixed.

I used RTF for years with no problem, and then they started to lose formatting when syncing between DT (on my Mac) and DTTG. So moved to plain text files last year to get consistent formatting and layout.

Now I can’t see plain text files…

I was already thinking about only using DT and DTTG to host my huge library of PDF files and research papers rather than as a place to make notes etc. I think this latest scenario has confirmed that that’s what I should do.

As a test I created a plain text file in DTTG3 (there was an update released this afternoon). The content turned invisible after creation, just the title was visible. I synced with DT on my Mac and the new plain text file didn’t sync.

Just fired up Scrivener to work on my paper tonight…

1 Like

I’ve never done this, and others can comment, but maybe you can restore your IOS device(s) from iCloud backup to which holds version 3.2.2 … I don’t know if restores bring in the apps on the backup or draw ijn latest from the App Store, but something I’d pursue if needed in a case like this.

The apps are not included in iCloud backups and are instead always downloaded from the App Store in their latest versions when you do a restore.

It used to be the case that local iTunes backups contained all the apps as when the device was backed up but this is also no longer the case.

1 Like

Thanks for your help, but, sorry I’m not sure I understand…
I have the latest DTTG installed - plain text files are invisible.
I had the previous version - plain text files are invisible.

I’m not going to restore my IOS device to solve a bug on one program, I’ll move to using a different program.

I don’t have the time to experiment, I also don’t want to revist the old days of Windows: ‘oh, what you need to do to make it work is [insert workaround]’.

I use Windows 11 every day as well as Macs, and Windows is pretty good these days, and you can add hard drives and memory to your machines…

Just trying to help. Carry on … i’ll stop thinking about it for you. :wink:


I really do appreciate your help, thank you.
At the moment I need things to work as they should, I don’t have any time for experimentation, quite a few deadlines are approaching.

This script

  • searches *.txt records in all open databases
  • creates a *.md version for each result

Note: Pretty sure not all Markdown special characters are escaped.

-- Create Markdown record for open databases' text records

-- NOTE: Close unnecessary databases before using this script.

use AppleScript version "2.4"
use framework "Foundation"
use scripting additions

property theWorkaroundTag : "_WORKAROUND"

tell application id "DNtp"
		set theRecords to search "filename:>txt"
		if theRecords = {} then return
		set theTempDirectoryURL to my createTempDirectory()
		repeat with thisRecord in theRecords
			set thisRecord_NameWithoutExtension to name without extension of thisRecord
			set thisRecord_Text to plain text of thisRecord
			set thisRecord_Text_escaped to my tid(my tid(my regexReplace(thisRecord_Text, "\\(|\\)|\\[|\\]|:|>|\\*", "\\\\$0"), linefeed), space & space & linefeed)
			set thisTempPath to my createTempFile(thisRecord_Text_escaped, theTempDirectoryURL)
			set thisMarkdownRecord to import thisTempPath name thisRecord_NameWithoutExtension to parent 1 of thisRecord
			set thisRecord_Parents to (parents of thisRecord whose location does not start with "/Tags")
			repeat with thisParent in thisRecord_Parents
				replicate record thisMarkdownRecord to thisParent
			end repeat
			tell thisMarkdownRecord
				set comment to comment of thisRecord
				set aliases to aliases of thisRecord
				set creation date to creation date of thisRecord
					set custom meta data to custom meta data of thisRecord
				end try
				set label to label of thisRecord
				set locking to locking of thisRecord
				set rating to rating of thisRecord
				set state to state of thisRecord
				set tags to (tags of thisRecord) & {theWorkaroundTag}
					set thumbnail to thumbnail of thisRecord
				end try
				set unread to unread of thisRecord
			end tell
		end repeat
		my deleteTempDirectory(theTempDirectoryURL)
	on error error_message number error_number
		if the error_number is not -128 then display alert "DEVONthink" message error_message as warning
	end try
end tell

on createTempDirectory()
		set theTempDirectoryURL to current application's |NSURL|'s fileURLWithPath:((current application's NSTemporaryDirectory())'s stringByAppendingPathComponent:(current application's NSProcessInfo's processInfo()'s globallyUniqueString()))
		set {successCreateDir, theError} to current application's NSFileManager's defaultManager's createDirectoryAtURL:theTempDirectoryURL withIntermediateDirectories:false attributes:(missing value) |error|:(reference)
		if theError ≠ missing value then error (theError's localizedDescription() as string)
		return theTempDirectoryURL
	on error error_message number error_number
		if the error_number is not -128 then display alert "Error: Handler \"createTempDirectory\"" message error_message as warning
		error number -128
	end try
end createTempDirectory

on createTempFile(theText, theTempDirectoryURL)
		set theTempURL to ((theTempDirectoryURL's URLByAppendingPathComponent:(current application's NSProcessInfo's processInfo()'s globallyUniqueString()))'s URLByAppendingPathExtension:"md")
		set theString to (current application's NSString's stringWithString:theText)
		set {success, theError} to theString's writeToURL:theTempURL atomically:true encoding:(current application's NSUTF8StringEncoding) |error|:(reference)
		if theError ≠ missing value then error (theError's localizedDescription() as string)
		return (theTempURL's |path|()) as string
	on error error_message number error_number
		if the error_number is not -128 then display alert "Error: Handler \"createFile\"" message error_message as warning
		error number -128
	end try
end createTempFile

on deleteTempDirectory(theTempDirectoryURL)
		set {successDeleteDir, theError} to (current application's NSFileManager's defaultManager()'s removeItemAtURL:(theTempDirectoryURL) |error|:(reference))
		if theError ≠ missing value then error (theError's localizedDescription() as string)
	on error error_message number error_number
		if the error_number is not -128 then display alert "Error: Handler \"deleteTempDirectory\"" message error_message as warning
		error number -128
	end try
end deleteTempDirectory

on regexReplace(theText, thePattern, theRepacement)
		set theString to current application's NSString's stringWithString:theText
		set newString to theString's stringByReplacingOccurrencesOfString:(thePattern) withString:(theRepacement) options:(current application's NSRegularExpressionSearch) range:{location:0, |length|:length of theText}
		set newText to newString as string
	on error error_message number error_number
		if the error_number is not -128 then display alert "Error: Handler \"regexReplace\"" message error_message as warning
		error number -128
	end try
end regexReplace

on tid(theInput, theDelimiter)
	set d to AppleScript's text item delimiters
	set AppleScript's text item delimiters to theDelimiter
	if class of theInput = text then
		set theOutput to text items of theInput
	else if class of theInput = list then
		set theOutput to theInput as text
	end if
	set AppleScript's text item delimiters to d
	return theOutput
end tid