diff --git a/NEWS b/NEWS
index f96ebf381d53c80573347ffeffa3c92877716ee9..ecfbbfee73773e980702516a4f5953a824eb93c2 100644
--- a/NEWS
+++ b/NEWS
@@ -65,6 +65,17 @@ documents those changes that are of interest to users and admins.
 ========================
  -- Fix bug in PrologSlurmctld use that would block job steps until node
     responds.
+ -- CRAY - If a partition has MinNodes=0 and a batch job doesn't request nodes
+    put the allocation to 1 instead of 0 which prevents the allocation to
+    happen.
+ -- Better debug when the database is down and using the --cluster option in
+    the user commands.
+ -- When asking for job states with sacct, default to 'now' instead of midnight
+    of the current day.
+ -- Fix for handling a test-only job or immediate job that fails while being
+    built.
+ -- Comment out all of the logic in the job_submit/defaults plugin. The logic
+    is only an example and not meant for actual use.
 
 * Changes in SLURM 2.5.3
 ========================
diff --git a/doc/html/accounting.shtml b/doc/html/accounting.shtml
index 5f75d4960c9d8b071fc33d2b848776d381b39b66..9670f972fef6fe8dd61189a11f8704d705203687 100644
--- a/doc/html/accounting.shtml
+++ b/doc/html/accounting.shtml
@@ -398,7 +398,7 @@ with to store the job accounting data.</li>
 
 <h2>MySQL Configuration</h2>
 
-<p>While SLURM will create the database automatically you will need to
+<p>While SLURM will create the database tables automatically you will need to
 make sure the StorageUser is given permissions in MySQL to do so.
 As the <i>mysql</i> user grant privileges to that user using a
 command such as:</p>
@@ -411,6 +411,9 @@ usage there is a line that starts with '->'. This a continuation
 prompt since the previous mysql statement did not end with a ';'. It
 assumes that you wish to input more info.)</p>
 
+<p>If you want Slurm to create the database itself, and any future databases,
+you can change your grant line to be *.* instead of StorageLoc.*</p>
+
 <p>Live example:</p>
 
 <pre>
@@ -447,6 +450,11 @@ mysql> grant all on slurm_acct_db.* TO 'slurm'@'system0'
 where 'system0' is the localhost or database storage host.
 </pre>
 
+<p>Then create the database:</p>
+<pre>
+mysql> create database slurm_acct_db;
+</pre>
+
 <p>This will grant user 'slurm' access to do what it needs to do on the local
 host or the storage host system.  This must be done before the SlurmDBD will
 work properly. After you grant permission to the user 'slurm' in mysql then
@@ -822,7 +830,7 @@ as deleted.
 If an entity has existed for less than 1 day, the entity will be removed
 completely. This is meant to clean up after typographic errors.</p>
 
-<p style="text-align: center;">Last modified 30 October 2012</p>
+<p style="text-align: center;">Last modified 11 February 2013</p>
 
 <!--#include virtual="footer.txt"-->
 
diff --git a/doc/man/man1/sacct.1 b/doc/man/man1/sacct.1
index 9e8fb430f8d6ee2ec04acab2c0ef24039ee19f7e..926f12802d7e9d884b1a2962a41df91bf0682656 100644
--- a/doc/man/man1/sacct.1
+++ b/doc/man/man1/sacct.1
@@ -337,9 +337,10 @@ starttime is 'now'.
 
 .TP
 \f3\-S\fP\f3,\fP \f3\-\-starttime\fP
-Select jobs eligible after the specified time. Default is midnight of
-current day.  If states are given with the \-s option then return jobs
-in this state at this time, 'now' is also used as the default time.
+Select jobs eligible after the specified time. Default is 00:00:00 of the
+current day, unless '\-s' is set then the default is 'now'.  If states
+are given with the '\-s' option then only jobs in this state at this
+time will be returned.
 
 Valid time formats are...
 .sp
diff --git a/src/common/proc_args.c b/src/common/proc_args.c
index e0598f84b6ce62475ce5f7362c324e45d57e65ef..6e85768e7d38bf30f67ccc32a1d66c317c4188cb 100644
--- a/src/common/proc_args.c
+++ b/src/common/proc_args.c
@@ -889,7 +889,7 @@ int sig_name2num(char *signal_name)
 /*
  * parse_uint32 - Convert anscii string to a 32 bit unsigned int.
  * IN      aval - ascii string.
- * IN/OUT  ival - 32 bit pointer. 
+ * IN/OUT  ival - 32 bit pointer.
  * RET     0 if no error, 1 otherwise.
  */
 extern int parse_uint32(char *aval, uint32_t *ival)
@@ -921,7 +921,7 @@ extern int parse_uint32(char *aval, uint32_t *ival)
 /*
  * parse_uint16 - Convert anscii string to a 16 bit unsigned int.
  * IN      aval - ascii string.
- * IN/OUT  ival - 16 bit pointer. 
+ * IN/OUT  ival - 16 bit pointer.
  * RET     0 if no error, 1 otherwise.
  */
 extern int parse_uint16(char *aval, uint16_t *ival)
@@ -949,3 +949,26 @@ extern int parse_uint16(char *aval, uint16_t *ival)
 
 	return 0;
 }
+
+/* print_db_notok() - Print an error message about slurmdbd
+ *                    is unreachable or wrong cluster name.
+ * IN  cname - char * cluster name
+ * IN  isenv - bool  cluster name from env or from command line option.
+ */
+void print_db_notok(const char *cname, bool isenv)
+{
+	if (errno)
+		error("There is a problem talking to the database: %m.  "
+		      "Only local cluster communication is available, remove "
+		      "%s or contact your admin to resolve the problem.",
+		      isenv ? "SLURM_CLUSTERS from your environment" :
+		      "--cluster from your command line");
+	else if (!strcasecmp("all", cname))
+		error("No clusters can be reached now. "
+		      "Contact your admin to resolve the problem.");
+	else
+		error("'%s' can't be reached now, "
+		      "or it is an invalid entry for %s.  "
+		      "Use 'sacctmgr list clusters' to see available clusters.",
+		      cname, isenv ? "SLURM_CLUSTERS" : "--cluster");
+}
diff --git a/src/common/proc_args.h b/src/common/proc_args.h
index f342eb1ba641fffa2a7b0787eba957ac6ee9e176..ece822268ada7361534b8bb61a364fb239f04dc8 100644
--- a/src/common/proc_args.h
+++ b/src/common/proc_args.h
@@ -72,7 +72,7 @@ void print_gres_help(void);
 task_dist_states_t verify_dist_type(const char *arg, uint32_t *plane_size);
 
 /*
- * verify comma separated list of connection types to array of uint16_t 
+ * verify comma separated list of connection types to array of uint16_t
  * connection_types or NO_VAL if not recognized
  */
 extern void verify_conn_type(const char *arg, uint16_t *conn_type);
@@ -148,7 +148,7 @@ int sig_name2num(char *signal_name);
 /*
  * parse_uint16 - Convert anscii string to a 16 bit unsigned int.
  * IN      aval - ascii string.
- * IN/OUT  ival - 16 bit pointer. 
+ * IN/OUT  ival - 16 bit pointer.
  * RET     0 if no error, 1 otherwise.
  */
 extern int	parse_uint16(char *aval, uint16_t *ival);
@@ -156,9 +156,18 @@ extern int	parse_uint16(char *aval, uint16_t *ival);
 /*
  * parse_uint32 - Convert anscii string to a 32 bit unsigned int.
  * IN      aval - ascii string.
- * IN/OUT  ival - 32 bit pointer. 
+ * IN/OUT  ival - 32 bit pointer.
  * RET     0 if no error, 1 otherwise.
  */
 extern int	parse_uint32(char *aval, uint32_t *ival);
 
+/* print_db_notok() - Print an error message about slurmdbd
+ *                    is unreachable or wrong cluster name.
+ * IN  cname - char * cluster name
+ * IN  isenv - bool   cluster name from env or from command line option.
+ */
+extern void print_db_notok(const char *cname, bool isenv);
+
+
+
 #endif /* !_PROC_ARGS_H */
diff --git a/src/common/read_config.c b/src/common/read_config.c
index 6ce024097906e961836f2d085561cc6841bc15bf..23f9c5f3183609853b2118b15bc4bdb79894c2e1 100644
--- a/src/common/read_config.c
+++ b/src/common/read_config.c
@@ -1038,7 +1038,12 @@ static int _parse_partitionname(void **dest, slurm_parser_enum_t type,
 		if (!s_p_get_uint32(&p->min_nodes, "MinNodes", tbl)
 		    && !s_p_get_uint32(&p->min_nodes, "MinNodes", dflt))
 			p->min_nodes = 1;
-
+#ifndef HAVE_CRAY
+		if (!p->min_nodes)
+			fatal("Partition '%s' has invalid MinNodes=0, this is "
+			      "currently valid only on a Cray system.",
+			      p->name);
+#endif
 		if (!s_p_get_string(&p->nodes, "Nodes", tbl)
 		    && !s_p_get_string(&p->nodes, "Nodes", dflt))
 			p->nodes = NULL;
diff --git a/src/plugins/job_submit/defaults/job_submit_defaults.c b/src/plugins/job_submit/defaults/job_submit_defaults.c
index 49a2fd0ee9f0c70b8ef6ecc210bfaad2b1ef419d..138440c8cc9437a77b3c5a5a646d7ba1d631bfba 100644
--- a/src/plugins/job_submit/defaults/job_submit_defaults.c
+++ b/src/plugins/job_submit/defaults/job_submit_defaults.c
@@ -105,13 +105,13 @@ const uint32_t min_plug_version = 100;
  * plugin. If you develop another plugin that may be of interest to others
  * please post it to slurm-dev@lists.llnl.gov  Thanks!
 \*****************************************************************************/
-
-/* This example code will prevent users from setting an accounting frequency
- * of less than 30 seconds in order to insure more precise accounting.
- * Also remove any QOS value set by the user in order to use the default value
- * from the database. */
 extern int job_submit(struct job_descriptor *job_desc, uint32_t submit_uid)
 {
+#if 0
+	/* This example code will prevent users from setting an accounting
+	 * frequency of less than 30 seconds in order to insure more precise
+	 *  accounting. Also remove any QOS value set by the user in order
+	 * to use the default value from the database. */
 	if (job_desc->acctg_freq < MIN_ACCTG_FREQUENCY) {
 		info("Changing accounting frequency of submitted job "
 		     "from %u to %u",
@@ -123,17 +123,18 @@ extern int job_submit(struct job_descriptor *job_desc, uint32_t submit_uid)
 		info("Clearing QOS (%s) from submitted job", job_desc->qos);
 		xfree(job_desc->qos);
 	}
-
+#endif
 	return SLURM_SUCCESS;
 }
 
-/* This example code will prevent users from setting an accounting frequency
- * of less than 30 seconds in order to insure more precise accounting.
- * Also remove any QOS value set by the user in order to use the default value
- * from the database. */
 extern int job_modify(struct job_descriptor *job_desc,
 		      struct job_record *job_ptr, uint32_t submit_uid)
 {
+#if 0
+	/* This example code will prevent users from setting an accounting
+	 * frequency of less than 30 seconds in order to insure more precise
+	 *  accounting. Also remove any QOS value set by the user in order
+	 * to use the default value from the database. */
 	if (job_desc->acctg_freq < MIN_ACCTG_FREQUENCY) {
 		info("Changing accounting frequency of modify job %u "
 		     "from %u to %u", job_ptr->job_id,
@@ -146,6 +147,6 @@ extern int job_modify(struct job_descriptor *job_desc,
 		     job_desc->qos, job_ptr->job_id);
 		xfree(job_desc->qos);
 	}
-
+#endif
 	return SLURM_SUCCESS;
 }
diff --git a/src/sacct/options.c b/src/sacct/options.c
index 17d2cc75bef2ddc34a3dad86fae65ee278de50ab..aa6edb87c55afc07d8dff8832199587f181f2d3a 100644
--- a/src/sacct/options.c
+++ b/src/sacct/options.c
@@ -485,7 +485,8 @@ sacct [<OPTION>]                                                            \n\
                    and node_fail (nf).                                      \n\
      -S, --starttime:                                                       \n\
                    Select jobs eligible after this time.  Default is        \n\
-                   midnight of current day.                                 \n\
+                   00:00:00 of the current day, unless '-s' is set then     \n\
+                   the default is 'now'.                                    \n\
      -T, --truncate:                                                        \n\
                    Truncate time.  So if a job started before --starttime   \n\
                    the start time would be truncated to --starttime.        \n\
@@ -908,17 +909,22 @@ void parse_command_line(int argc, char **argv)
 	if (!job_cond->usage_start && !job_cond->step_list) {
 		struct tm start_tm;
 		job_cond->usage_start = time(NULL);
-
-		if (!localtime_r(&job_cond->usage_start, &start_tm)) {
-			error("Couldn't get localtime from %ld",
-			      (long)job_cond->usage_start);
-			return;
+		/* If we are looking for job states default to now.
+		   If not default to midnight of the current day.
+		*/
+		if (!job_cond->state_list
+		    || !list_count(job_cond->state_list)) {
+			if (!localtime_r(&job_cond->usage_start, &start_tm)) {
+				error("Couldn't get localtime from %ld",
+				      (long)job_cond->usage_start);
+				return;
+			}
+			start_tm.tm_sec = 0;
+			start_tm.tm_min = 0;
+			start_tm.tm_hour = 0;
+			start_tm.tm_isdst = -1;
+			job_cond->usage_start = mktime(&start_tm);
 		}
-		start_tm.tm_sec = 0;
-		start_tm.tm_min = 0;
-		start_tm.tm_hour = 0;
-		start_tm.tm_isdst = -1;
-		job_cond->usage_start = mktime(&start_tm);
 	}
 
 	if (verbosity > 0) {
diff --git a/src/sbatch/opt.c b/src/sbatch/opt.c
index 209060de5150f9bcf572c773c0c1aad0185f3fd9..11681843a555498402116af5c1fb819f6f643c70 100644
--- a/src/sbatch/opt.c
+++ b/src/sbatch/opt.c
@@ -647,11 +647,7 @@ _process_env_var(env_vars_t *e, const char *val)
 		break;
 	case OPT_CLUSTERS:
 		if (!(opt.clusters = slurmdb_get_info_cluster((char *)val))) {
-			error("'%s' can't be reached now, "
-			      "or it is an invalid entry for "
-			      "--cluster.  Use 'sacctmgr --list "
-			      "cluster' to see available clusters.",
-			      optarg);
+			print_db_notok(val, 1);
 			exit(1);
 		}
 		break;
@@ -1256,11 +1252,7 @@ static void _set_options(int argc, char **argv)
 				list_destroy(opt.clusters);
 			if (!(opt.clusters =
 			      slurmdb_get_info_cluster(optarg))) {
-				error("'%s' can't be reached now, "
-				      "or it is an invalid entry for "
-				      "--cluster.  Use 'sacctmgr --list "
-				      "cluster' to see available clusters.",
-				      optarg);
+				print_db_notok(optarg, 0);
 				exit(1);
 			}
 			break;
@@ -2275,7 +2267,7 @@ static bool _opt_verify(void)
 		error("Can't set SLURM_DIST_LLLP env variable");
 	}
 
-	
+
 
 	/* bound threads/cores from ntasks_cores/sockets */
 	if (opt.ntasks_per_core > 0) {
diff --git a/src/scancel/opt.c b/src/scancel/opt.c
index 9d12064cd6353043d1e5280bd4cf683bcc7e9ad1..05c79fbe97ea5b582e2d7e5a831b9289ddfb31c8 100644
--- a/src/scancel/opt.c
+++ b/src/scancel/opt.c
@@ -377,11 +377,7 @@ static void _opt_args(int argc, char **argv)
 				list_destroy(opt.clusters);
 			opt.clusters = slurmdb_get_info_cluster(optarg);
 			if (!opt.clusters) {
-				error("'%s' can't be reached now, "
-				      "or it is an invalid entry for "
-				      "--cluster.  Use 'sacctmgr --list "
-				      "cluster' to see available clusters.",
-				      optarg);
+				print_db_notok(optarg, 0);
 				exit(1);
 			}
 			working_cluster_rec = list_peek(opt.clusters);
diff --git a/src/scontrol/scontrol.c b/src/scontrol/scontrol.c
index 2cf70f24a8565ba5bd6ca6179767c2978641f183..c8596495c4f6844668160fc96a39df5ba4e051f5 100644
--- a/src/scontrol/scontrol.c
+++ b/src/scontrol/scontrol.c
@@ -121,11 +121,7 @@ main (int argc, char *argv[])
 		all_flag= 1;
 	if ((env_val = getenv("SLURM_CLUSTERS"))) {
 		if (!(clusters = slurmdb_get_info_cluster(env_val))) {
-			error("'%s' can't be reached now, "
-			      "or it is an invalid entry for "
-			      "SLURM_CLUSTERS.  Use 'sacctmgr --list "
-			      "cluster' to see available clusters.",
-			      env_val);
+			print_db_notok(env_val, 1);
 			exit(1);
 		}
 		working_cluster_rec = list_peek(clusters);
@@ -160,11 +156,7 @@ main (int argc, char *argv[])
 				working_cluster_rec = NULL;
 			}
 			if (!(clusters = slurmdb_get_info_cluster(optarg))) {
-				error("'%s' can't be reached now, "
-				      "or it is an invalid entry for "
-				      "--cluster.  Use 'sacctmgr --list "
-				      "cluster' to see available clusters.",
-				      optarg);
+				print_db_notok(optarg, 0);
 				exit(1);
 			}
 			working_cluster_rec = list_peek(clusters);
@@ -653,11 +645,7 @@ _process_command (int argc, char *argv[])
 		}
 		if (argc >= 2) {
 			if (!(clusters = slurmdb_get_info_cluster(argv[1]))) {
-				error("'%s' can't be reached now, "
-				      "or it is an invalid entry for "
-				      "--cluster.  Use 'sacctmgr --list "
-				      "cluster' to see available clusters.",
-				      optarg);
+				print_db_notok(argv[1], 0);
 				exit(1);
 			}
 			working_cluster_rec = list_peek(clusters);
diff --git a/src/sinfo/opts.c b/src/sinfo/opts.c
index 1147adb8a1c7ec4445b22ed74c42f311d2b385fd..bf575911bacb0647f70900f9da4d0217718c5db2 100644
--- a/src/sinfo/opts.c
+++ b/src/sinfo/opts.c
@@ -127,11 +127,7 @@ extern void parse_command_line(int argc, char *argv[])
 		params.sort = xstrdup(env_val);
 	if ( ( env_val = getenv("SLURM_CLUSTERS") ) ) {
 		if (!(params.clusters = slurmdb_get_info_cluster(env_val))) {
-			error("'%s' can't be reached now, "
-			      "or it is an invalid entry for "
-			      "SLURM_CLUSTERS.  Use 'sacctmgr --list "
-			      "cluster' to see available clusters.",
-			      env_val);
+			print_db_notok(env_val, 1);
 			exit(1);
 		}
 		working_cluster_rec = list_peek(params.clusters);
@@ -185,11 +181,7 @@ extern void parse_command_line(int argc, char *argv[])
 				list_destroy(params.clusters);
 			if (!(params.clusters =
 			      slurmdb_get_info_cluster(optarg))) {
-				error("'%s' can't be reached now, "
-				      "or it is an invalid entry for "
-				      "--cluster.  Use 'sacctmgr --list "
-				      "cluster' to see available clusters.",
-				      optarg);
+				print_db_notok(optarg, 0);
 				exit(1);
 			}
 			working_cluster_rec = list_peek(params.clusters);
diff --git a/src/slurmctld/job_mgr.c b/src/slurmctld/job_mgr.c
index cc20d54d9cac9a21c0ec6e10688d4d941f3ea6ad..7ce3a53abe7fd88e6e20290f476629a99db7f192 100644
--- a/src/slurmctld/job_mgr.c
+++ b/src/slurmctld/job_mgr.c
@@ -3726,7 +3726,13 @@ static int _valid_job_part(job_desc_msg_t * job_desc,
 
 	/* Validate job limits against partition limits */
 	if (job_desc->min_nodes == NO_VAL) {
-		job_desc->min_nodes = min_nodes_orig;
+		/* Avoid setting the job request to 0 nodes if the
+		   user didn't ask for 0.
+		*/
+		if (!min_nodes_orig)
+			job_desc->min_nodes = 1;
+		else
+			job_desc->min_nodes = min_nodes_orig;
 	} else if ((job_desc->min_nodes > max_nodes_orig) &&
 		   slurmctld_conf.enforce_part_limits) {
 		info("_valid_job_part: job's min nodes greater than "
@@ -4329,6 +4335,7 @@ cleanup_fail:
 		xfree(job_ptr->state_desc);
 		job_ptr->start_time = job_ptr->end_time = time(NULL);
 		_purge_job_record(job_ptr->job_id);
+		*job_pptr = (struct job_record *) NULL;
 	}
 	FREE_NULL_LIST(license_list);
 	FREE_NULL_LIST(part_ptr_list);
diff --git a/src/smap/opts.c b/src/smap/opts.c
index 9bde3b4e8ea1ce3adfa0f6ea7ea4fa7a41cddcb5..738761129c80d204cda1bc474b4c7245af0ed11e 100644
--- a/src/smap/opts.c
+++ b/src/smap/opts.c
@@ -137,11 +137,7 @@ extern void parse_command_line(int argc, char *argv[])
 				list_destroy(params.clusters);
 			if (!(params.clusters =
 			     slurmdb_get_info_cluster(optarg))) {
-				error("'%s' can't be reached now, "
-				      "or it is an invalid entry for "
-				      "--cluster.  Use 'sacctmgr --list "
-				      "cluster' to see available clusters.",
-				      optarg);
+				print_db_notok(optarg, 0);
 				exit(1);
 			}
 			working_cluster_rec = list_peek(params.clusters);
diff --git a/src/sprio/opts.c b/src/sprio/opts.c
index 6cd6928bf23fc5deddb98d421601dad233d5fe74..49ca1ad145d168eb5244405d30b4b3b9ef65e5cd 100644
--- a/src/sprio/opts.c
+++ b/src/sprio/opts.c
@@ -82,11 +82,7 @@ static void _opt_env(void)
 
 	if ((env_val = getenv("SLURM_CLUSTERS"))) {
 		if (!(params.clusters = slurmdb_get_info_cluster(env_val))) {
-			error("'%s' can't be reached now, "
-			      "or it is an invalid entry for "
-			      "SLURM_CLUSTERS.  Use 'sacctmgr --list "
-			      "cluster' to see available clusters.",
-			      env_val);
+			print_db_notok(env_val, 1);
 			exit(1);
 		}
 	}
@@ -146,11 +142,7 @@ parse_command_line( int argc, char* argv[] )
 				list_destroy(params.clusters);
 			if (!(params.clusters =
 			     slurmdb_get_info_cluster(optarg))) {
-				error("'%s' can't be reached now, "
-				      "or it is an invalid entry for "
-				      "--cluster.  Use 'sacctmgr --list "
-				      "cluster' to see available clusters.",
-				      optarg);
+				print_db_notok(optarg, 0);
 				exit(1);
 			}
 			break;
diff --git a/src/squeue/opts.c b/src/squeue/opts.c
index 66e90c6cd1e79c7c9cdd9d8d03432e84faff39e5..4a24d58727dfbd24a7e6afd37b8f71862ddeb989 100644
--- a/src/squeue/opts.c
+++ b/src/squeue/opts.c
@@ -136,11 +136,7 @@ parse_command_line( int argc, char* argv[] )
 		params.sort = xstrdup(env_val);
 	if ( ( env_val = getenv("SLURM_CLUSTERS") ) ) {
 		if (!(params.clusters = slurmdb_get_info_cluster(env_val))) {
-			error("'%s' can't be reached now, "
-			      "or it is an invalid entry for "
-			      "SLURM_CLUSTERS.  Use 'sacctmgr --list "
-			      "cluster' to see available clusters.",
-			      env_val);
+			print_db_notok(env_val, 1);
 			exit(1);
 		}
 		working_cluster_rec = list_peek(params.clusters);
@@ -191,11 +187,7 @@ parse_command_line( int argc, char* argv[] )
 				list_destroy(params.clusters);
 			if (!(params.clusters =
 			    slurmdb_get_info_cluster(optarg))) {
-				error("'%s' can't be reached now, "
-				      "or it is an invalid entry for "
-				      "--cluster.  Use 'sacctmgr --list "
-				      "cluster' to see available clusters.",
-				      optarg);
+				print_db_notok(optarg, 0);
 				exit(1);
 			}
 			working_cluster_rec = list_peek(params.clusters);
diff --git a/src/sshare/sshare.c b/src/sshare/sshare.c
index 999891934f1993878f6d1a6650982ac4e7f03e22..8af2c56a1bb6a3539e79b7028ce026f4be84d225 100644
--- a/src/sshare/sshare.c
+++ b/src/sshare/sshare.c
@@ -125,11 +125,7 @@ main (int argc, char *argv[])
 				list_destroy(clusters);
 			if (!(clusters =
 			     slurmdb_get_info_cluster(optarg))) {
-				error("'%s' can't be reached now, "
-				      "or it is an invalid entry for "
-				      "--cluster.  Use 'sacctmgr --list "
-				      "cluster' to see available clusters.",
-				      optarg);
+				print_db_notok(optarg, 0);
 				exit(1);
 			}
 			working_cluster_rec = list_peek(clusters);
diff --git a/src/strigger/opts.c b/src/strigger/opts.c
index 4d00c16bc74ee6659f27d19da3cb69943d7347df..45507134a5952012d270ebd3d5e05a098342dbd3 100644
--- a/src/strigger/opts.c
+++ b/src/strigger/opts.c
@@ -217,11 +217,7 @@ extern void parse_command_line(int argc, char *argv[])
 				list_destroy(params.clusters);
 			if (!(params.clusters =
 			      slurmdb_get_info_cluster(optarg))) {
-				error("'%s' can't be reached now, "
-				      "or it is an invalid entry for "
-				      "--cluster.  Use 'sacctmgr --list "
-				      "cluster' to see available clusters.",
-				      optarg);
+				print_db_notok(optarg, 0);
 				exit(1);
 			}
 			working_cluster_rec = list_peek(params.clusters);