Header

AstroPlanner Beta Testing

Introduction

Anyone is free to download and test the latest beta version of the application. Please note that beta versions of the application have a built-in expiration date that is 120 days after the release date. After that date, you can still use it, but you'll be "nagged" to download a more recent release. This is to prevent bugs being reported on older beta versions that have already been fixed in later releases.

Please discuss beta issues only on the Beta Testers mailing list. Click here to join/leave the list.

Click here for more information on how to report a bug.

V2.4 Notes:

This page last modified: 2026/02/21 12:27 (Pacific time)

Download

VersionRelease DateExpiry Date
2.4.1b92026/01/30120 days from Release Date

Macintosh

64-bit Application (.dmg)Download220.8MB64-bit version. Intel-based Mac with MacOS 10.14 or later. Apple Silicon-based Mac with MacOS 11 or later.
64-bit Application (.dmg)Download164.7MBSpecial version for MacOS 10.11 through 10.13. Intel-only.

Windows

32-bit Application (.exe)Download136.4MiB32-bit version. Installer. Windows 8.1 or later
32-bit Application (.exe.zip)Download135.9MiB32-bit version. Zipped installer
64-bit Application (.exe)Download132.7MiB64-bit version. Installer. Windows 8.1 or later
64-bit Application (.exe.zip)Download132.3MiB64-bit version. Zipped installer
64-bit Application (.exe.zip)Download188.3MiBSpecial 64-bit version for Windows 7 SP1 through 8.0.
32-bit Application (.exe.zip)Download197.4MiBSpecial 32-bit version for Windows 7 SP1 through 8.0.

Both platforms

User Manual (.pdf.zip)Download82.8MiBV2.4 beta user manual

Note: Beta versions of the application typically do not include the user manual or scripting manual in order to reduce download size.

Release Notes

A list of unresolved bugs can be found here, and feature requests here.

Version: 2.4.1b10
Release Date: Soon
Fixes: 4, Enhancements: 1

ID:
8120

Status:
Fixed

Date:
2026/02/21

Plan not refreshing upon site change

It appears that the plan refresh is launched when the site changes. However, that does not always seem to be the case.

I have a highly obstructed back yard. I view from two different locations in the yard to get different views of the sky. They are each entered as a site in the resources. However, they both have exactly the same Long/lat.

It seems that the plan refresh is triggered if the Long/Lat is different when changing sites, but that it does not change if the new site has the same Long/Lat as the previous site.


Analysis:
This is because the alt/az of each plan object hasn't changed, and the application isn't taking into account that the user horizon has changed. This will happen if the date/time is fixed.

Resolution:
Fixed. Site change will change visibility if the date/time is fixed and two sites are identically located but the horizon differs.

ID:
8115

Status:
Implemented

Date:
2026/02/19

Improvements to generic text import/export

Improvements:
a. Better error reporting when setting up.
b. Ability to redefine XML/JSON keys when exporting.

Resolution:
Implemented.

ID:
8118

Status:
Fixed

Date:
2026/02/19

Picture.Save: Unsupported Format Exception

Exception Type: Unsupported Format Exception
Exception Message: This format is not supported

1: Sub Picture.Save( FolderItem, int64, int0, uint0, string(), int64 )
2: Function Utility.APSaveAsPicture( extends FolderItem, Picture ) as boolean
3: Sub ObsFilesContainer.SaveChangesBtn_Pressed( ObsFilesContainer, PDPushButton )
4: Sub DesktopApplication._CallFunctionWithExceptionHandling()


User description of above error trace:

Rotated an attached (linked) image and selected Save Changes


Resolution:
Fixed. If a bad picture format issue is detected it will inform the user rather than firing off an exception.

ID:
8102

Status:
Fixed

Date:
2026/02/19

ObjectListbox.CellTextAt: Nil Object Exception

Exception Type: Nil Object Exception

1: Sub ObjectListbox.CellTextAt( int64, int64, assigns string )
2: Sub StripedListBox.SwapRows( int64, int64 )
3: Sub PlanObjectAssociation.!OrderList( MainWindow )
4: Sub MainWindow.AssociateOrdering( MainWindow )
5: Sub MainWindow.OnOpen( MainWindow, FolderItem, boolean )
6: Function App.OpenADocumentFile( FolderItem, byref MainWindow, string, boolean, boolean, int64 ) as boolean
7: Function App.OpenFileFromDisk( FolderItem, boolean, int64, int64, int64, int64 ) as MainWindow
8: Function App._FileOpen_Action() as boolean
9: Sub DesktopApplication._CallFunctionWithExceptionHandling()


Resolution:
Fixed.

ID:
8112

Status:
Fixed

Date:
2026/02/19

Catalogs objects with no ID are difficult to manage

There are times when I do want to use catalog objects with no actual ID in the Galactic Dust Catalog. They cannot be actually added from the Synonyms search and you cannot search for them in the Name field of a catalog. It's hard to tell what catalog they came from in the FoV tab. It took me a long time to figure out where BDN99.01+4.01 came from when it showed up in FoV. Steps to duplicate:

There are times when I do want to use catalog objects with no actual ID in the Galactic Dust Catalog. They cannot be actually added from the Synonyms search and you cannot search for them in the Name field of a catalog. It's hard to tell what catalog they came from in the FoV tab. It took me a long time to figure out where BDN99.01+4.01 came from when it showed up in FoV. Steps to duplicate:

1. Go to New Object and add Be36 from the Bernes Dark Nebula catalog.
2. Right-click on Be36 and choose Lookup Synonyms.. Select the object with name BDN99.01+4.01 (but no ID) from the GDC catalog and choose Add Selected. Say No to replace the existing object.
*Nothing is added to the document
3. Repeat step 2 but say Yest to replace the object.
*Nothing is added to the document but Be36 is deleted.
4. Go to Object> Open Catalogue/s and open the Galactic Dust Cloud catalog.
5. In the Find field, choose Any from the drop-down and type BDN99.01+4.01
*It cannot find the object from the Name field.
6. Try it again by typing in "inc LDN1099,LDN1105" which is in the description field.
*Now it can be seen at the top of the list but can't be selected.
7. Select the object and choose Add Selected.
8. Delete the object, re-add Be36, select Be36, and go into FoV. Check the box to show objects from the Galactic Dust Cloud catalog.
9. Hover the mouse over the middle of the chart. It shows BDN99.01+4.01 in perins but there is no information about GDC so it's hard to tell where it came from (the GDC catalog only technically has LDN as an ID).

Attachment: AstroPlannerV2-W321.prefs

Resolution:
Fixed. GDC catalogue revised to have an ID (GDC).

Version: 2.4.1b9
Release Date: 2026/01/30
Fixes: 17, Enhancements: 6

ID:
8103

Status:
Implemented

Date:
2026/01/24

Open Astronomy Log (OAL) Export

Implement Open Astronomy Log (OAL) export of observations, sessions, etc.

Resolution:
Implemented.

ID:
6841

Status:
Implemented

Date:
2026/01/17

Import Open Astronomy Log (OAL) files

I would like to see AstroPlanner be able to import observations that are in Open Astronomy Log (OAL) format from SkySafari 6 Pro. It takes a lot of work to get observations to import properly using the CSV format.

Resolution:
Implemented. File > Import > Open Astronomy Log (AOL)...

ID:
8096

Status:
Fixed

Date:
2026/01/13

ObjectListbox.CellTextAt: Nil Object Exception

Exception Type: Nil Object Exception

1: Sub ObjectListbox.CellTextAt( int64, int64, assigns string )
2: Sub StripedListBox.SwapRows( int64, int64 )
3: Sub PlanObjectAssociation.!OrderList( MainWindow )
4: Sub MainWindow.AssociateOrdering( MainWindow )
5: Sub MainWindow.OnOpen( MainWindow, FolderItem, boolean )
6: Function App.OpenADocumentFile( FolderItem, byref MainWindow, string, boolean, boolean, int64 ) as boolean
7: Function App.OpenFileFromDisk( FolderItem, boolean, int64, int64, int64, int64 ) as MainWindow
8: Function App._FileOpen_Action() as boolean
9: Sub DesktopApplication._CallFunctionWithExceptionHandling()


Resolution:
Fixed.

ID:
8089

Status:
Implemented

Date:
2026/01/06

Add ability to assign keyboard shortcuts to menu items

Add ability to assign keyboard shortcuts to menu items that don't already have such a thing.

Resolution:
Implemented. The General Preferences window now has a Menu tab that lets you assign keyboard shortcuts to menu items.

ID:
8077

Status:
Fixed

Date:
2026/01/01

User Object Notes that go down past the screen are scrolling down to refresh themselves.

Steps to duplicate:
1. Open the attached document. Select the object with the name "*NGC 1300".
2. In the User Object notes, click after the bolded text called "Irregular Galaxies" and start typing, then pause.
*When you pause, it scrolls down to the end of all the text and comes back up again. It's awkward for typing because you can't always see what you are doing and it causes some confusion.

Analysis:
A bug in the underlying framework. Took some effort to find a solution.

Resolution:
Fixed.

ID:
8078

Status:
Implemented

Date:
2025/12/23

Add an All-Sky Coverage tab to plan document

Add an All-Sky Coverage tab to the plan document window showing an all sky view (Aitoff projection) with the plan's objects shown.

Resolution:
Implemented.

ID:
8065

Status:
Fixed

Date:
2025/12/19

Exporting multiple files not working anymore

When exporting multiple files by means of File > Export > Multiple Generic, text, ...
the export sequence appears to hang at the final step, the creation of the exported file. The export dialogue window stays in view and cannot be removed by clicking 'cancel'. The application can be quit without problems.


Resolution:
Fixed.

ID:
8073

Status:
Fixed

Date:
2025/12/17

Multiple export option display as selected

When exporting object/s with option to export only 1 object selected by default, selecting the option to export all objects results in both the single object export option and the all objects option to display as selected, simultaneously.

The resulting export (all objects) is successful.

Resolution:
Fixed.

ID:
8064

Status:
Fixed

Date:
2025/12/17

Refreshing from catalog doesn't remember last choice for only "Objects to Refresh"

This has caused me to refresh all objects in a plan document accidentally. It can be really frustrating. Steps to duplicate:

1. Highlight any object in a plan document. Go to Object> Refresh Objects from Catalog.
2. Change to only refresh "Selected Object".
3. Change to "Do not refresh" if an existing catalog is specified. Select the RA and Dec fields to refresh.
4. Click OK to run the refresh.
5. Go back into the feature.
*Notice that the choices from Step 3 have been remembered but not from Step 2.

Attachment: AstroPlannerV2-W32.prefs

Resolution:
Fixed.

ID:
8072

Status:
Fixed

Date:
2025/12/16

Copy IDs issue

I have several objects in a plan.

I'd like to copy the IDs of some of them that I've selected.

EDIT / CopyIDs copies all IDs
Right-click / Copy all rows- selected row to the clipboard

There is no way to copy only the IDs that I select ?

Resolution:
Fixed. If no objects are selected, then the menu item reads Edit > Copy All IDs and does as before. If one or more rows are selected then the menu item reads Edit > Copy Selected IDs and only copies the selected row IDs onto the clipboard.

ID:
8069

Status:
Implemented

Date:
2025/12/11

Better means of determining moon visibility

The Moon widget shows the rise/set times w.r.t. the "theoretical" 0° horizon. If a user horizon is in use, the only way to determine the actual rise/set times is to include the Moon as a plan object, which is inconvenient. Also it isn't obvious to determine the moon's current status (set, risen, above the user horizon).

Resolution:
Implemented. The short and long term visibility widgets show the moon in green if it is blocked by the user horizon. The moon widget colors the rise/set times in green if the user-horizon is blocking, and the Alt/Az value is colored green if the moon is currently blocked by the user horizon.

ID:
8066

Status:
Fixed

Date:
2025/11/30

Bogus synonym issue

Several times I have found that one object is considered the same as another when it comes to observations. It has happened for:

M81, M82
M42 and M43
M84 and M86
M86 and M87
NGC3185, NGC3187, NGC3189 and NGC3193

Analysis:
The main issue is that the Bedford Catalogue contains duplicate IDs for several of the entries. This screws with the internal synonym system.

Resolution:
Fixed. (a) the Bedford Catalogue has been revised to have unique main ID numbers, and (b) the code has been changed to prevent more than one synonym being sourced in any particular catalogue.

ID:
8057

Status:
Implemented

Date:
2025/11/24

Adding Planetary Moons

I'd like to add the Planetary Moons to my SSO Plan.

I've tried duplicating the associated Planet and renaming the duplicates to the moon names but this doesn't copy across the "special feature" that tracks the Planet's position. So for a Planet I cannot edit its RA and Dec but for the duplicate I can. This means that the Planetary Moons that I have added do not follow the Planets with which they are associated.

I noticed that for other SSO objects like asteroids the RA and Dec is also not editable, but there is an Edit Element button that allows me to edit a bunch of orbital parameters which I assume are used to calculate the position of the SSO. This Edit Element button isn't available for Planets (for obvious reasons).

I could duplicate an asteroid as the starting point for each Planetary Moon but since I can't see the Planets set of orbital parameters (because they are not editable) I don't know what parameters to enter for the Planetary Moon.

Possible solutions would be:
- Allow Planetary Moons to be added as Special Objects (preferred)
- Allow the orbital parameters of the Planets to be viewed but not edited so that they could be copied and pasted into a duplicate of an asteroid.
- Just send me the orbital parameters of the Planets.

Resolution:
Implemented. This is an interim solution. You will find a collection of planetary moons using the Add Special popup and selecting Planetary Moons... Once added to the plan document, the coordinates of the parent planet are computed and used (not the current coordinates of the moon). Note that the above is the only way to add such moons to the plan - they can't be constructed manually. For reasons.

ID:
7748

Status:
Fixed

Date:
2025/11/22

Highlight rules not passing on all settings with exports

Steps to Duplicate:
1. Open the Objects of Interest Plan Doc
2. Go to Object > Highlight> Edit Custom Highlighting.
3. Select the "Luminosity..." highlight rule and go to Rule Set #4.
**It has a spectral rule that matches All of a regular expression.
4. Select the "Custom Default" rule set and notice the time ranges specified for Visibility on the different rule sets.
5. Click Save and save it with a filename.
6. Open the Main Objects document.
7. Choose the Luminosity rule in the Site widget drop-down and notice that Rule Set #4 is using "Any of" instead of "All of" for the Reg Expression.
8. Go to Object > Highlight> Edit Custom Highlighting. Click Load and choose the highlight file from step 5.
9. Choose the Luminosity rule and notice it is still using "Any of" for the Reg Expression in the Luminosity rule.
10. Choose the Custom Default rule and notice that the time ranges for Visibility are also different than in the Objects of Interest plan. (Some end at 1:00 or 1:45 instead of 1:30)

Attachment: Objects of Interest.apdAttachment: Main Objects.apd

Resolution:
Fixed.

ID:
8061

Status:
Fixed

Date:
2025/11/22

Custom Highlighting - Longest Dimension not persisting

When I create a custom highlight rule with a size constraint and set this to Longest Dimension, it does not persist through a Save and Load. It does persist in the plan if I save the plan, but if I try to Load the saved highlighting rules into another plan, the setting reverts to Area A x B in that plan and I have to change every one manually back to Longest dimension and then save the plan.


Analysis:
Ooo, nasty. This actually affects quite a few rule types.

Resolution:
Fixed.

ID:
8060

Status:
Fixed

Date:
2025/11/22

StellariumFunctionality.SaveObservingList: Nil Object Exception

Exception Type: Nil Object Exception

1: Sub StellariumFunctionality.SaveObservingList( int64, string, string )
2: Sub StellariumFunctionality.Export()
3: Function MainWindow._ExportStellariumObsList_Action( MainWindow ) as boolean
4: Sub DesktopApplication._CallFunctionWithExceptionHandling()


User description of above error trace:

I also get this exception when I try to export selected objects from the plan. So the export only works when all plan objects are specified for export.


Resolution:
Fixed.

ID:
8059

Status:
Fixed

Date:
2025/11/22

StellariumFunctionality.SaveObservingList: Nil Object Exception

Exception Type: Nil Object Exception

1: Sub StellariumFunctionality.SaveObservingList( int64, string, string )
2: Sub StellariumFunctionality.Export()
3: Function MainWindow._ExportStellariumObsList_Action( MainWindow ) as boolean
4: Sub DesktopApplication._CallFunctionWithExceptionHandling()


User description of above error trace:

I got this error when exporting just highlighted objects to a Stellarium Object List. It works fine if I export the entire plan.


Analysis:
Sorry about that. Anything other than exporting all objects will have the same issue.

Resolution:
Fixed.

ID:
8058

Status:
Fixed

Date:
2025/11/22

DesktopListBox.RowTagAt: Out Of Bounds Exception

Exception Type: Out Of Bounds Exception

1: Sub DesktopListBox.RowTagAt( int64 )
2: Sub ObsAttachmentEditor.DeleteFileBtn_Action( ObsAttachmentEditor, APPictureButton, string, int64 )
3: Sub APPictureButton.DoAction( string, int64 )
4: Sub APPictureButton.Event_Pressed()
5: Sub DesktopWindow.ShowModal( DesktopWindow )
6: Function ObservationWindow.EditObservation( ObservationWindow ) as boolean
7: Sub ObservationWindow.obs_DoublePressed( ObservationWindow, StripedListBox )
8: Sub DesktopApplication._CallFunctionWithExceptionHandling()


User description of above error trace:

Removed an attached file from an observation by clicking the "-" (minus) button at bottom left in the observation database editing window, and this exception popped up.

This is probably the only attachment in my observation database, that I added about 8 1/2 years ago.


Resolution:
Fixed.

ID:
8055

Status:
Fixed

Date:
2025/11/21

Trim Session cannot be disabled

In Observation Preferences the 'Trim sessions if observations change' flag is not being persisted.

If I disable it and then edit a session in the Observations Database, that session will always have its end time trimmed.

Resolution:
Fixed.

ID:
8052

Status:
Fixed

Date:
2025/11/21

MainWindow.SaveSortOrder: Nil Object Exception

Exception Type: Nil Object Exception

1: Sub MainWindow.SaveSortOrder( MainWindow )
2: Sub AllMWPreferences.ReadWrite( boolean, boolean )
3: Sub MWPreferences.ReadWrite( boolean, boolean )
4: Function MainWindow.DoFileSave( MainWindow ) as boolean
5: Function MainWindow._FileSave_Action( MainWindow ) as boolean
6: Sub DesktopApplication._CallFunctionWithExceptionHandling()


User description of above error trace:

I had just opened the Main Objects document and refreshed it's RA / DEC from the catalog because it's DEC was at +11 rather than -11 somehow. I then saved the document, opened my Novas, Quasars... document and merged Spica from the Main Objects catalog. I then clicked on File Save from within the Novas, Quasars... document and this error popped up.

User description of above error trace:

I did a merge from Objects of Interest to Main Objects and told it to dissociate any associations. I told it to merge anything that has the name start with Manatee Nebula and modified the name a little further in Main Objects. Then I merged from Objects of Interest into 2025-10-21 Candidates but told it to include all associations regardless of rules. I modified the name a little further in the Candidates doc and then told it to save the Candidates document. That's when the error occurred.

Resolution:
Fixed.

ID:
8050

Status:
Fixed

Date:
2025/11/21

The Cross-Ref feature doesn't remember the last choice for "Objects to Process"

Other settings with this feature are remembered. This causes me to sometimes mistakenly update all the objects in a plan document. Steps to duplicate:

1. Add the object SAC8594 to a plan document. Select the object.
2. Choose Object> Cross-Reference Objects to ID. Choose Selected for Objects to Process.
3. Under ID to Cross-Reference, choose M for the ID and "Messier catalog" for the source catalogue (or choose something else if these were already chosen)
4. Choose to replace for the method, and choose to also replace the Name field (or choose something else if these were already chosen).
5. Choose to assume the same object within 650.0 arc seconds.
6. Click OK and it will change the info for the object.
7. Go back into the feature. All choices will have been remembered from last time except for Objects to Process, wich is set to All.


Resolution:
Fixed.

ID:
8051

Status:
Fixed

Date:
2025/11/19

ObjectListbox.CellTextAt: Nil Object Exception

Exception Type: Nil Object Exception

1: Sub ObjectListbox.CellTextAt( int64, int64, assigns string )
2: Sub StripedListBox.SwapRows( int64, int64 )
3: Sub PlanObjectAssociation.!OrderList( MainWindow )
4: Sub MainWindow.AssociateOrdering( MainWindow )
5: Sub MainWindow.OnOpen( MainWindow, FolderItem, boolean )
6: Function App.OpenADocumentFile( FolderItem, byref MainWindow, string, boolean, boolean, int64 ) as boolean
7: Function App.OpenFileFromDisk( FolderItem, boolean, int64, int64, int64, int64 ) as MainWindow
8: Function App._FileOpen_Action() as boolean
9: Sub DesktopApplication._CallFunctionWithExceptionHandling()


User description of above error trace:

Not sure if this is the same problem I reported before but this document gives an exception when I try to open it. It appears that it is going to open up blank again or that I am just going to get kicked out after I send this.

Attachment: 2022-03-23 Seagull Nebula, Orion, Perseus Cloud (New).apdAttachment: AstroPlannerV2-W32.prefs
User description of above error trace:

Just installed the latest update. It is still giving an exception when opening this document. Looks like it will end up being blank again.

Attachment: AstroPlannerV2-W32.prefsAttachment: 2022-03-23 Seagull Nebula, Orion, Perseus Cloud (New).apd

Analysis:
Sorting associated objects issue

Resolution:
Fixed.

ID:
8007

Status:
Fixed

Date:
2025/11/19

Lookup Items issue

When selecting "Lookup Name" at the bottom of the main window, and an object in the existing list is "active" (selected), the first line in the "Lookup items" window is filled with the name of the active (selected) object in the list.

One must clear that line before entering the required name to be searched. This is not the case when clicking on an empty place below the last object in the list. But when having a long object list, one must scroll to the end of the list.

Is it possible to have always an empty "Look up items" window?

Resolution:
Fixed. If there's text in the field it will be initially selected. Hence you can just start typing and it will be replaced.

Show all beta release notes for the current version