none
Installed 2010 SP1 - Unified Messaging service failing to start correctly now RRS feed

  • Question

  • Server 2008 R2 64-bit with Exchange 2010 RTM.  I installed SpeechPlatformRuntime.msi (10.1) and UcmaRuntimeSetup, then installed 2010 SP1.   Installation completed "successfully", rebooted, and the "Microsoft Exchange Unified Messaging" service will not start and run for more than 10 seconds.

    This are the related errors in the event log.  #1 occured first, then #2.  This keeps happening over over.  I have rebooted, and Windows Firewall is enabled.

    ---- #2 ----

    Watson report about to be sent for process id: 6328, with parameters: E12, c-RTL-AMD64, 14.01.0218.015, UMworkerprocess, M.E.UM.UMCore, M.E.U.U.GalGrammar.GenerateActivePath, M.E.Diagnostics.ExAssertException, c1f5, 14.01.0218.012.

    ErrorReportingEnabled: True

    -------- # 1 -----

    An unhandled exception occurred in a UM worker process: "Microsoft.Exchange.Diagnostics.ExAssertException: ASSERT: couldn't generate unique name!

       at Microsoft.Exchange.Diagnostics.ExAssert.AssertInternal(String formatString, Object[] parameters)

       at Microsoft.Exchange.UM.UMCore.GalGrammar.GenerateActivePath(CultureInfo culture, String extension)

       at Microsoft.Exchange.UM.UMCore.GalGrammar.MoveToActive(CultureInfo culture, String filePath)

       at Microsoft.Exchange.UM.UMCore.GalGrammarWriter.GenerateCultureFromEntriesFile(ITempFile entriesFile, GalGrammar grammar, CultureInfo culture, Boolean preCompile)

       at Microsoft.Exchange.UM.UMCore.GalGrammarWriter.GenerateAllCulturesFromEntriesFile(ITempFile entriesFile, GalGrammar grammar, Boolean preCompile)

       at Microsoft.Exchange.UM.UMCore.GalGrammarWriter.Generate(GalGrammar grammar, Boolean preCompile)

       at Microsoft.Exchange.UM.UMCore.GrammarGenerator.Generate(Boolean preload, Boolean precompile, StreamWriter logFileStream)

       at Microsoft.Exchange.UM.UMCore.GrammarSchedule.GenerateGrammars(List`1 requiredGrammarFiles, List`1 grammarFiles, StreamWriter logwriter, ExclusionList exclusionList)

       at Microsoft.Exchange.UM.UMCore.GrammarSchedule.GenerateGrammarWorker(Object state)

       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)

       at System.Threading._ThreadPoolWaitCallback.PerformWaitCallbackInternal(_ThreadPoolWaitCallback tpWaitCallBack)

       at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback(Object state)".

     

    ------

     

    Any ideas?

    Joe

    • Edited by Joe Gadell Monday, September 20, 2010 3:50 AM
    Friday, September 17, 2010 6:53 AM

Answers

  • Hi James,

     

    Ok.  First I tried running the galgrammargenator tool as instructed.  Here are the results.  

    I ran galgrammargenerator -s servername successfully.

    Then galgrammargenerator -d 3digitdialplan successfully

    galgrammargenerator -g and -p both generate that ASSERT: couldn't generate unique name!  error.

     

    I then replaced the grammar files as suggested and that didn't make any difference.

    I opened the UMSpeechGrammar.log associated with the 1131 events and the log is empty.

    UPDATE! It's fixed.  I deleted all of the files out of the en-US folder except for the default files listed by James above.  Re-started the service and it worked!

     


    • Marked as answer by Joe Gadell Thursday, September 23, 2010 9:46 PM
    Thursday, September 23, 2010 9:35 PM

All replies

  • Hi,

    This is for Exchange 2007 but maybe it could help you.

     

    http://msexchangeteam.com/archive/2007/11/29/447611.aspx

     

    Regards.

    Shafaquat Ali.


    M.C.I.T.P Exchange 2007/2010, M.C.I.T.P Windows Server 2008, M.C.T.S OCS Server 2007 R2, URL: http://blog.WhatDoUC.net Phone: +923008210320
    Friday, September 17, 2010 7:14 AM
  • I'm sorry I looked on this link and didn't find anything that had to do with the error.  Did I miss something or was this just a general resource link.

     

    Thanks,

    Joe

    Friday, September 17, 2010 4:41 PM
  • Have you performed the ExBPA against the UM server for health check?

    Is there any further error event after increasing the diagnostic logging level of the UM category on the UM server, and reproduce the issue?

    Have you remove old language packs before upgrade, and installed new language packs in exchange 2010 SP1?

    Upgrade Exchange 2010 UM Language Packs from RTM to SP1


    James Luo
    TechNet Subscriber Support (http://technet.microsoft.com/en-us/subscriptions/ms788697.aspx)
    If you have any feedback on our support, please contact tngfb@microsoft.com
    Tuesday, September 21, 2010 10:05 AM
    Moderator
  • James,

     

    Running ExBPA now.  We did not uninstall the old en-US language pack prior to install - somehow missed that step in the instructions.  Now, when trying to run the setup.com /removeumlanguagepack:en-us I get an error that reads:

    --

    UM Language Pack for en-US

    The US English (EN-US) Unified Messaging language pack can't be uninstalled because it's required for the Unified Messaging server role.

    Exchange Server setup encountered an error.

    --

    I tried installing another language pack, switching the AA and callplan to it, and then removing again, but get the same error.

    Any thoughts?

    Tuesday, September 21, 2010 4:45 PM
  • It’s ok. Exchange setup requires that all Unified Messaging server role language packs, except the US English language pack, be uninstalled before the Unified Messaging server role upgrade can continue

    So, you do not need to remove the default English language pack

    Please check the result in the ExBPA and diagnostic logging


    James Luo
    TechNet Subscriber Support (http://technet.microsoft.com/en-us/subscriptions/ms788697.aspx)
    If you have any feedback on our support, please contact tngfb@microsoft.com
    Wednesday, September 22, 2010 1:47 AM
    Moderator
  • James, Here are several log entries in HIGH logging mode on the UM service.  Does this help?  Thanks!

    Log Name:   Application
    Source:    MSExchange Unified Messaging
    Date:     9/22/2010 8:29:48 PM
    Event ID:   1430
    Task Category: UMCore
    Level:     Error
    Keywords:   Classic
    User:     N/A
    Computer:   gnet-exch1.g.loca
    Description:
    The Unified Messaging server shut down process umservice (PID=5180) because a fatal error occurred.
    Event Xml:
    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
     <System>
      <Provider Name="MSExchange Unified Messaging" />
      <EventID Qualifiers="49156">1430</EventID>
      <Level>2</Level>
      <Task>2</Task>
      <Keywords>0x80000000000000</Keywords>
      <TimeCreated SystemTime="2010-09-23T01:29:48.000000000Z" />
      <EventRecordID>148267</EventRecordID>
      <Channel>Application</Channel>
      <Computer>gnet-exch1.g.loca</Computer>
      <Security />
     </System>
     <EventData>
      <Data>umservice</Data>
      <Data>5180</Data>
     </EventData>
    </Event>
    
    Log Name:   Application
    Source:    MSExchange Unified Messaging
    Date:     9/22/2010 8:29:48 PM
    Event ID:   1427
    Task Category: UMService
    Level:     Error
    Keywords:   Classic
    User:     N/A
    Computer:   gnet-exch1.g.loca
    Description:
    A fatal error occurred in the Microsoft Exchange Unified Messaging service. The Service Control Manager will restart the Unified Messaging service automatically to recover from this error. 
    Error details:
    "Microsoft.Exchange.UM.UMService.UMServiceException: The Microsoft Exchange Unified Messaging service can't create a worker process because SIP ports ("5065" or "5067") are unavailable. 
      at Microsoft.Exchange.UM.UMService.WorkerProcessManager.OnWorkerExited(WorkerInstance workerInstance, Boolean resetRequested, Boolean fatalError)
      at Microsoft.Exchange.UM.UMService.WorkerInstance.MonitorResetHandle(Object stateinfo)
      at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
      at System.Threading._ThreadPoolWaitCallback.PerformWaitCallbackInternal(_ThreadPoolWaitCallback tpWaitCallBack)
      at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback(Object state)".
    Event Xml:
    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
     <System>
      <Provider Name="MSExchange Unified Messaging" />
      <EventID Qualifiers="49156">1427</EventID>
      <Level>2</Level>
      <Task>4</Task>
      <Keywords>0x80000000000000</Keywords>
      <TimeCreated SystemTime="2010-09-23T01:29:48.000000000Z" />
      <EventRecordID>148266</EventRecordID>
      <Channel>Application</Channel>
      <Computer>gnet-exch1.g.loca</Computer>
      <Security />
     </System>
     <EventData>
      <Data>Microsoft.Exchange.UM.UMService.UMServiceException: The Microsoft Exchange Unified Messaging service can't create a worker process because SIP ports ("5065" or "5067") are unavailable. 
      at Microsoft.Exchange.UM.UMService.WorkerProcessManager.OnWorkerExited(WorkerInstance workerInstance, Boolean resetRequested, Boolean fatalError)
      at Microsoft.Exchange.UM.UMService.WorkerInstance.MonitorResetHandle(Object stateinfo)
      at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
      at System.Threading._ThreadPoolWaitCallback.PerformWaitCallbackInternal(_ThreadPoolWaitCallback tpWaitCallBack)
      at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback(Object state)</Data>
     </EventData>
    </Event>
    
    Log Name:   Application
    Source:    MSExchange Unified Messaging
    Date:     9/22/2010 8:29:48 PM
    Event ID:   1057
    Task Category: UMWorkerProcess
    Level:     Error
    Keywords:   Classic
    User:     N/A
    Computer:   gnet-exch1.g.loca
    Description:
    An unhandled exception occurred in a UM worker process: "Microsoft.Exchange.Diagnostics.ExAssertException: ASSERT: couldn't generate unique name!
      at Microsoft.Exchange.Diagnostics.ExAssert.AssertInternal(String formatString, Object[] parameters)
      at Microsoft.Exchange.UM.UMCore.GalGrammar.GenerateActivePath(CultureInfo culture, String extension)
      at Microsoft.Exchange.UM.UMCore.GalGrammar.MoveToActive(CultureInfo culture, String filePath)
      at Microsoft.Exchange.UM.UMCore.GalGrammarWriter.GenerateCultureFromEntriesFile(ITempFile entriesFile, GalGrammar grammar, CultureInfo culture, Boolean preCompile)
      at Microsoft.Exchange.UM.UMCore.GalGrammarWriter.GenerateAllCulturesFromEntriesFile(ITempFile entriesFile, GalGrammar grammar, Boolean preCompile)
      at Microsoft.Exchange.UM.UMCore.GalGrammarWriter.Generate(GalGrammar grammar, Boolean preCompile)
      at Microsoft.Exchange.UM.UMCore.GrammarGenerator.Generate(Boolean preload, Boolean precompile, StreamWriter logFileStream)
      at Microsoft.Exchange.UM.UMCore.GrammarSchedule.GenerateGrammars(List`1 requiredGrammarFiles, List`1 grammarFiles, StreamWriter logwriter, ExclusionList exclusionList)
      at Microsoft.Exchange.UM.UMCore.GrammarSchedule.GenerateGrammarWorker(Object state)
      at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
      at System.Threading._ThreadPoolWaitCallback.PerformWaitCallbackInternal(_ThreadPoolWaitCallback tpWaitCallBack)
      at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback(Object state)".
    Event Xml:
    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
     <System>
      <Provider Name="MSExchange Unified Messaging" />
      <EventID Qualifiers="49156">1057</EventID>
      <Level>2</Level>
      <Task>1</Task>
      <Keywords>0x80000000000000</Keywords>
      <TimeCreated SystemTime="2010-09-23T01:29:48.000000000Z" />
      <EventRecordID>148265</EventRecordID>
      <Channel>Application</Channel>
      <Computer>gnet-exch1.g.loca</Computer>
      <Security />
     </System>
     <EventData>
      <Data>Microsoft.Exchange.Diagnostics.ExAssertException: ASSERT: couldn't generate unique name!
      at Microsoft.Exchange.Diagnostics.ExAssert.AssertInternal(String formatString, Object[] parameters)
      at Microsoft.Exchange.UM.UMCore.GalGrammar.GenerateActivePath(CultureInfo culture, String extension)
      at Microsoft.Exchange.UM.UMCore.GalGrammar.MoveToActive(CultureInfo culture, String filePath)
      at Microsoft.Exchange.UM.UMCore.GalGrammarWriter.GenerateCultureFromEntriesFile(ITempFile entriesFile, GalGrammar grammar, CultureInfo culture, Boolean preCompile)
      at Microsoft.Exchange.UM.UMCore.GalGrammarWriter.GenerateAllCulturesFromEntriesFile(ITempFile entriesFile, GalGrammar grammar, Boolean preCompile)
      at Microsoft.Exchange.UM.UMCore.GalGrammarWriter.Generate(GalGrammar grammar, Boolean preCompile)
      at Microsoft.Exchange.UM.UMCore.GrammarGenerator.Generate(Boolean preload, Boolean precompile, StreamWriter logFileStream)
      at Microsoft.Exchange.UM.UMCore.GrammarSchedule.GenerateGrammars(List`1 requiredGrammarFiles, List`1 grammarFiles, StreamWriter logwriter, ExclusionList exclusionList)
      at Microsoft.Exchange.UM.UMCore.GrammarSchedule.GenerateGrammarWorker(Object state)
      at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
      at System.Threading._ThreadPoolWaitCallback.PerformWaitCallbackInternal(_ThreadPoolWaitCallback tpWaitCallBack)
      at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback(Object state)</Data>
     </EventData>
    </Event>
    
    Log Name:   Application
    Source:    MSExchange Unified Messaging
    Date:     9/22/2010 8:29:48 PM
    Event ID:   1046
    Task Category: UMService
    Level:     Information
    Keywords:   Classic
    User:     N/A
    Computer:   gnet-exch1.g.loca
    Description:
    The Unified Messaging worker process has terminated. The state of the UM worker process is "Ready".
    Event Xml:
    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
     <System>
      <Provider Name="MSExchange Unified Messaging" />
      <EventID Qualifiers="16388">1046</EventID>
      <Level>4</Level>
      <Task>4</Task>
      <Keywords>0x80000000000000</Keywords>
      <TimeCreated SystemTime="2010-09-23T01:29:48.000000000Z" />
      <EventRecordID>148264</EventRecordID>
      <Channel>Application</Channel>
      <Computer>gnet-exch1.g.loca</Computer>
      <Security />
     </System>
     <EventData>
      <Data>Ready</Data>
     </EventData>
    </Event>
    
    Log Name:   Application
    Source:    MSExchange Unified Messaging
    Date:     9/22/2010 8:29:48 PM
    Event ID:   1047
    Task Category: UMService
    Level:     Information
    Keywords:   Classic
    User:     N/A
    Computer:   gnet-exch1.g.loca
    Description:
    The Microsoft Exchange Unified Messaging service has requested that a new UM worker process be created.
    Event Xml:
    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
     <System>
      <Provider Name="MSExchange Unified Messaging" />
      <EventID Qualifiers="16388">1047</EventID>
      <Level>4</Level>
      <Task>4</Task>
      <Keywords>0x80000000000000</Keywords>
      <TimeCreated SystemTime="2010-09-23T01:29:48.000000000Z" />
      <EventRecordID>148263</EventRecordID>
      <Channel>Application</Channel>
      <Computer>gnet-exch1.g.loca</Computer>
      <Security />
     </System>
     <EventData>
     </EventData>
    </Event>
    
    Log Name:   Application
    Source:    MSExchange Unified Messaging
    Date:     9/22/2010 8:29:47 PM
    Event ID:   1056
    Task Category: UMService
    Level:     Information
    Keywords:   Classic
    User:     N/A
    Computer:   gnet-exch1.g.loca
    Description:
    The state of the Unified Messaging Worker Process Manage has changed. Previous state = "initializing". Current state = "Ready and Accepting calls".
    Event Xml:
    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
     <System>
      <Provider Name="MSExchange Unified Messaging" />
      <EventID Qualifiers="16388">1056</EventID>
      <Level>4</Level>
      <Task>4</Task>
      <Keywords>0x80000000000000</Keywords>
      <TimeCreated SystemTime="2010-09-23T01:29:47.000000000Z" />
      <EventRecordID>148262</EventRecordID>
      <Channel>Application</Channel>
      <Computer>gnet-exch1.g.loca</Computer>
      <Security />
     </System>
     <EventData>
      <Data>initializing</Data>
      <Data>Ready and Accepting calls</Data>
     </EventData>
    </Event>
    
    Log Name:   Application
    Source:    MSExchange Unified Messaging
    Date:     9/22/2010 8:29:47 PM
    Event ID:   1000
    Task Category: UMWorkerProcess
    Level:     Information
    Keywords:   Classic
    User:     N/A
    Computer:   gnet-exch1.g.loca
    Description:
    The Unified Messaging Worker Process was started successfully on port "5067".
    Event Xml:
    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
     <System>
      <Provider Name="MSExchange Unified Messaging" />
      <EventID Qualifiers="4">1000</EventID>
      <Level>4</Level>
      <Task>1</Task>
      <Keywords>0x80000000000000</Keywords>
      <TimeCreated SystemTime="2010-09-23T01:29:47.000000000Z" />
      <EventRecordID>148261</EventRecordID>
      <Channel>Application</Channel>
      <Computer>gnet-exch1.g.loca</Computer>
      <Security />
     </System>
     <EventData>
      <Data>5067</Data>
     </EventData>
    </Event>
    
    Log Name:   Application
    Source:    MSExchange Unified Messaging
    Date:     9/22/2010 8:29:47 PM
    Event ID:   1131
    Task Category: UMWorkerProcess
    Level:     Information
    Keywords:   Classic
    User:     N/A
    Computer:   gnet-exch1.g.loca
    Description:
    The Unified Messaging worker process has started grammar generation for Automatic Speech Recognition. A log file will be written to: 'C:\Program Files\Microsoft\Exchange Server\V14\UnifiedMessaging\temp\UMTempFiles\9114c280-2158-496a-83e1-38479500a2bf\UMSpeechGrammar.log'.
    Event Xml:
    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
     <System>
      <Provider Name="MSExchange Unified Messaging" />
      <EventID Qualifiers="4">1131</EventID>
      <Level>4</Level>
      <Task>1</Task>
      <Keywords>0x80000000000000</Keywords>
      <TimeCreated SystemTime="2010-09-23T01:29:47.000000000Z" />
      <EventRecordID>148260</EventRecordID>
      <Channel>Application</Channel>
      <Computer>gnet-exch1.g.loca</Computer>
      <Security />
     </System>
     <EventData>
      <Data>A log file will be written to: 'C:\Program Files\Microsoft\Exchange Server\V14\UnifiedMessaging\temp\UMTempFiles\9114c280-2158-496a-83e1-38479500a2bf\UMSpeechGrammar.log'</Data>
     </EventData>
    </Event>
    
    Log Name:   Application
    Source:    MSExchange Unified Messaging
    Date:     9/22/2010 8:29:47 PM
    Event ID:   1010
    Task Category: UMCore
    Level:     Information
    Keywords:   Classic
    User:     N/A
    Computer:   gnet-exch1.g.loca
    Description:
    The telephone interface definitions were successfully loaded from the configuration file: "C:\Program Files\Microsoft\Exchange Server\V14\UnifiedMessaging\root.fsm"
    Event Xml:
    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
     <System>
      <Provider Name="MSExchange Unified Messaging" />
      <EventID Qualifiers="4">1010</EventID>
      <Level>4</Level>
      <Task>2</Task>
      <Keywords>0x80000000000000</Keywords>
      <TimeCreated SystemTime="2010-09-23T01:29:47.000000000Z" />
      <EventRecordID>148259</EventRecordID>
      <Channel>Application</Channel>
      <Computer>gnet-exch1.g.loca</Computer>
      <Security />
     </System>
     <EventData>
      <Data>C:\Program Files\Microsoft\Exchange Server\V14\UnifiedMessaging\root.fsm</Data>
     </EventData>
    </Event>
    
    Log Name:   Application
    Source:    MSExchange Common
    Date:     9/22/2010 8:29:42 PM
    Event ID:   4999
    Task Category: General
    Level:     Error
    Keywords:   Classic
    User:     N/A
    Computer:   gnet-exch1.g.loca
    Description:
    Watson report about to be sent for process id: 8744, with parameters: E12, c-RTL-AMD64, 14.01.0218.015, UMworkerprocess, M.E.UM.UMCore, M.E.U.U.GalGrammar.GenerateActivePath, M.E.Diagnostics.ExAssertException, c1f5, 14.01.0218.012.
    ErrorReportingEnabled: True
    Event Xml:
    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
     <System>
      <Provider Name="MSExchange Common" />
      <EventID Qualifiers="16388">4999</EventID>
      <Level>2</Level>
      <Task>1</Task>
      <Keywords>0x80000000000000</Keywords>
      <TimeCreated SystemTime="2010-09-23T01:29:42.000000000Z" />
      <EventRecordID>148258</EventRecordID>
      <Channel>Application</Channel>
      <Computer>gnet-exch1.g.loca</Computer>
      <Security />
     </System>
     <EventData>
      <Data>8744</Data>
      <Data>E12</Data>
      <Data>c-RTL-AMD64</Data>
      <Data>14.01.0218.015</Data>
      <Data>UMworkerprocess</Data>
      <Data>M.E.UM.UMCore</Data>
      <Data>M.E.U.U.GalGrammar.GenerateActivePath</Data>
      <Data>M.E.Diagnostics.ExAssertException</Data>
      <Data>c1f5</Data>
      <Data>14.01.0218.012</Data>
      <Data>True</Data>
      <Data>
      </Data>
     </EventData>
    </Event>
    
    Log Name:   Application
    Source:    MSExchange Unified Messaging
    Date:     9/22/2010 8:29:42 PM
    Event ID:   1056
    Task Category: UMService
    Level:     Information
    Keywords:   Classic
    User:     N/A
    Computer:   gnet-exch1.g.loca
    Description:
    The state of the Unified Messaging Worker Process Manage has changed. Previous state = "Ready and Accepting calls". Current state = "initializing".
    Event Xml:
    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
     <System>
      <Provider Name="MSExchange Unified Messaging" />
      <EventID Qualifiers="16388">1056</EventID>
      <Level>4</Level>
      <Task>4</Task>
      <Keywords>0x80000000000000</Keywords>
      <TimeCreated SystemTime="2010-09-23T01:29:42.000000000Z" />
      <EventRecordID>148257</EventRecordID>
      <Channel>Application</Channel>
      <Computer>gnet-exch1.g.loca</Computer>
      <Security />
     </System>
     <EventData>
      <Data>Ready and Accepting calls</Data>
      <Data>initializing</Data>
     </EventData>
    </Event>
    
    Log Name:   Application
    Source:    MSExchange Unified Messaging
    Date:     9/22/2010 8:29:42 PM
    Event ID:   1057
    Task Category: UMWorkerProcess
    Level:     Error
    Keywords:   Classic
    User:     N/A
    Computer:   gnet-exch1.g.loca
    Description:
    An unhandled exception occurred in a UM worker process: "Microsoft.Exchange.Diagnostics.ExAssertException: ASSERT: couldn't generate unique name!
      at Microsoft.Exchange.Diagnostics.ExAssert.AssertInternal(String formatString, Object[] parameters)
      at Microsoft.Exchange.UM.UMCore.GalGrammar.GenerateActivePath(CultureInfo culture, String extension)
      at Microsoft.Exchange.UM.UMCore.GalGrammar.MoveToActive(CultureInfo culture, String filePath)
      at Microsoft.Exchange.UM.UMCore.GalGrammarWriter.GenerateCultureFromEntriesFile(ITempFile entriesFile, GalGrammar grammar, CultureInfo culture, Boolean preCompile)
      at Microsoft.Exchange.UM.UMCore.GalGrammarWriter.GenerateAllCulturesFromEntriesFile(ITempFile entriesFile, GalGrammar grammar, Boolean preCompile)
      at Microsoft.Exchange.UM.UMCore.GalGrammarWriter.Generate(GalGrammar grammar, Boolean preCompile)
      at Microsoft.Exchange.UM.UMCore.GrammarGenerator.Generate(Boolean preload, Boolean precompile, StreamWriter logFileStream)
      at Microsoft.Exchange.UM.UMCore.GrammarSchedule.GenerateGrammars(List`1 requiredGrammarFiles, List`1 grammarFiles, StreamWriter logwriter, ExclusionList exclusionList)
      at Microsoft.Exchange.UM.UMCore.GrammarSchedule.GenerateGrammarWorker(Object state)
      at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
      at System.Threading._ThreadPoolWaitCallback.PerformWaitCallbackInternal(_ThreadPoolWaitCallback tpWaitCallBack)
      at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback(Object state)".
    Event Xml:
    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
     <System>
      <Provider Name="MSExchange Unified Messaging" />
      <EventID Qualifiers="49156">1057</EventID>
      <Level>2</Level>
      <Task>1</Task>
      <Keywords>0x80000000000000</Keywords>
      <TimeCreated SystemTime="2010-09-23T01:29:42.000000000Z" />
      <EventRecordID>148256</EventRecordID>
      <Channel>Application</Channel>
      <Computer>gnet-exch1.g.loca</Computer>
      <Security />
     </System>
     <EventData>
      <Data>Microsoft.Exchange.Diagnostics.ExAssertException: ASSERT: couldn't generate unique name!
      at Microsoft.Exchange.Diagnostics.ExAssert.AssertInternal(String formatString, Object[] parameters)
      at Microsoft.Exchange.UM.UMCore.GalGrammar.GenerateActivePath(CultureInfo culture, String extension)
      at Microsoft.Exchange.UM.UMCore.GalGrammar.MoveToActive(CultureInfo culture, String filePath)
      at Microsoft.Exchange.UM.UMCore.GalGrammarWriter.GenerateCultureFromEntriesFile(ITempFile entriesFile, GalGrammar grammar, CultureInfo culture, Boolean preCompile)
      at Microsoft.Exchange.UM.UMCore.GalGrammarWriter.GenerateAllCulturesFromEntriesFile(ITempFile entriesFile, GalGrammar grammar, Boolean preCompile)
      at Microsoft.Exchange.UM.UMCore.GalGrammarWriter.Generate(GalGrammar grammar, Boolean preCompile)
      at Microsoft.Exchange.UM.UMCore.GrammarGenerator.Generate(Boolean preload, Boolean precompile, StreamWriter logFileStream)
      at Microsoft.Exchange.UM.UMCore.GrammarSchedule.GenerateGrammars(List`1 requiredGrammarFiles, List`1 grammarFiles, StreamWriter logwriter, ExclusionList exclusionList)
      at Microsoft.Exchange.UM.UMCore.GrammarSchedule.GenerateGrammarWorker(Object state)
      at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
      at System.Threading._ThreadPoolWaitCallback.PerformWaitCallbackInternal(_ThreadPoolWaitCallback tpWaitCallBack)
      at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback(Object state)</Data>
     </EventData>
    </Event>
    
    Log Name:   Application
    Source:    MSExchange Unified Messaging
    Date:     9/22/2010 8:29:42 PM
    Event ID:   1046
    Task Category: UMService
    Level:     Information
    Keywords:   Classic
    User:     N/A
    Computer:   gnet-exch1.g.loca
    Description:
    The Unified Messaging worker process has terminated. The state of the UM worker process is "Ready".
    Event Xml:
    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
     <System>
      <Provider Name="MSExchange Unified Messaging" />
      <EventID Qualifiers="16388">1046</EventID>
      <Level>4</Level>
      <Task>4</Task>
      <Keywords>0x80000000000000</Keywords>
      <TimeCreated SystemTime="2010-09-23T01:29:42.000000000Z" />
      <EventRecordID>148255</EventRecordID>
      <Channel>Application</Channel>
      <Computer>gnet-exch1.g.loca</Computer>
      <Security />
     </System>
     <EventData>
      <Data>Ready</Data>
     </EventData>
    </Event>
    
    Log Name:   Application
    Source:    MSExchange Unified Messaging
    Date:     9/22/2010 8:29:42 PM
    Event ID:   1047
    Task Category: UMService
    Level:     Information
    Keywords:   Classic
    User:     N/A
    Computer:   gnet-exch1.g.loca
    Description:
    The Microsoft Exchange Unified Messaging service has requested that a new UM worker process be created.
    Event Xml:
    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
     <System>
      <Provider Name="MSExchange Unified Messaging" />
      <EventID Qualifiers="16388">1047</EventID>
      <Level>4</Level>
      <Task>4</Task>
      <Keywords>0x80000000000000</Keywords>
      <TimeCreated SystemTime="2010-09-23T01:29:42.000000000Z" />
      <EventRecordID>148254</EventRecordID>
      <Channel>Application</Channel>
      <Computer>gnet-exch1.g.loca</Computer>
      <Security />
     </System>
     <EventData>
     </EventData>
    </Event>
    
    Log Name:   Application
    Source:    MSExchange Unified Messaging
    Date:     9/22/2010 8:29:41 PM
    Event ID:   1401
    Task Category: UMCore
    Level:     Information
    Keywords:   Classic
    User:     N/A
    Computer:   gnet-exch1.g.loca
    Description:
    The following UM IP gateways responded promptly to a SIP OPTIONS request. 
    Transport = TCP, Address = uc500.g.loca, Port = 5060, Response Code = 200, Message = OK
    
    Event Xml:
    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
     <System>
      <Provider Name="MSExchange Unified Messaging" />
      <EventID Qualifiers="4">1401</EventID>
      <Level>4</Level>
      <Task>2</Task>
      <Keywords>0x80000000000000</Keywords>
      <TimeCreated SystemTime="2010-09-23T01:29:41.000000000Z" />
      <EventRecordID>148253</EventRecordID>
      <Channel>Application</Channel>
      <Computer>gnet-exch1.g.loca</Computer>
      <Security />
     </System>
     <EventData>
      <Data>Transport = TCP, Address = uc500.g.loca, Port = 5060, Response Code = 200, Message = OK
    </Data>
     </EventData>
    </Event>
    
    Log Name:   Application
    Source:    MSExchange Unified Messaging
    Date:     9/22/2010 8:29:41 PM
    Event ID:   1131
    Task Category: UMWorkerProcess
    Level:     Information
    Keywords:   Classic
    User:     N/A
    Computer:   gnet-exch1.g.loca
    Description:
    The Unified Messaging worker process has started grammar generation for Automatic Speech Recognition. A log file will be written to: 'C:\Program Files\Microsoft\Exchange Server\V14\UnifiedMessaging\temp\UMTempFiles\3c736437-5485-4438-a73a-ca1d4f108df1\UMSpeechGrammar.log'.
    Event Xml:
    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
     <System>
      <Provider Name="MSExchange Unified Messaging" />
      <EventID Qualifiers="4">1131</EventID>
      <Level>4</Level>
      <Task>1</Task>
      <Keywords>0x80000000000000</Keywords>
      <TimeCreated SystemTime="2010-09-23T01:29:41.000000000Z" />
      <EventRecordID>148252</EventRecordID>
      <Channel>Application</Channel>
      <Computer>gnet-exch1.g.loca</Computer>
      <Security />
     </System>
     <EventData>
      <Data>A log file will be written to: 'C:\Program Files\Microsoft\Exchange Server\V14\UnifiedMessaging\temp\UMTempFiles\3c736437-5485-4438-a73a-ca1d4f108df1\UMSpeechGrammar.log'</Data>
     </EventData>
    </Event>
    
    Log Name:   Application
    Source:    MSExchange Unified Messaging
    Date:     9/22/2010 8:29:41 PM
    Event ID:   1037
    Task Category: UMService
    Level:     Information
    Keywords:   Classic
    User:     N/A
    Computer:   gnet-exch1.g.loca
    Description:
    The Microsoft Exchange Unified Messaging service has started successfully.
    Event Xml:
    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
     <System>
      <Provider Name="MSExchange Unified Messaging" />
      <EventID Qualifiers="4">1037</EventID>
      <Level>4</Level>
      <Task>4</Task>
      <Keywords>0x80000000000000</Keywords>
      <TimeCreated SystemTime="2010-09-23T01:29:41.000000000Z" />
      <EventRecordID>148251</EventRecordID>
      <Channel>Application</Channel>
      <Computer>gnet-exch1.g.loca</Computer>
      <Security />
     </System>
     <EventData>
     </EventData>
    </Event>
    
    Log Name:   Application
    Source:    MSExchange Unified Messaging
    Date:     9/22/2010 8:29:41 PM
    Event ID:   1056
    Task Category: UMService
    Level:     Information
    Keywords:   Classic
    User:     N/A
    Computer:   gnet-exch1.g.loca
    Description:
    The state of the Unified Messaging Worker Process Manage has changed. Previous state = "initializing". Current state = "Ready and Accepting calls".
    Event Xml:
    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
     <System>
      <Provider Name="MSExchange Unified Messaging" />
      <EventID Qualifiers="16388">1056</EventID>
      <Level>4</Level>
      <Task>4</Task>
      <Keywords>0x80000000000000</Keywords>
      <TimeCreated SystemTime="2010-09-23T01:29:41.000000000Z" />
      <EventRecordID>148250</EventRecordID>
      <Channel>Application</Channel>
      <Computer>gnet-exch1.g.loca</Computer>
      <Security />
     </System>
     <EventData>
      <Data>initializing</Data>
      <Data>Ready and Accepting calls</Data>
     </EventData>
    </Event>
    
    Log Name:   Application
    Source:    MSExchange Unified Messaging
    Date:     9/22/2010 8:29:41 PM
    Event ID:   1000
    Task Category: UMWorkerProcess
    Level:     Information
    Keywords:   Classic
    User:     N/A
    Computer:   gnet-exch1.g.loca
    Description:
    The Unified Messaging Worker Process was started successfully on port "5065".
    Event Xml:
    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
     <System>
      <Provider Name="MSExchange Unified Messaging" />
      <EventID Qualifiers="4">1000</EventID>
      <Level>4</Level>
      <Task>1</Task>
      <Keywords>0x80000000000000</Keywords>
      <TimeCreated SystemTime="2010-09-23T01:29:41.000000000Z" />
      <EventRecordID>148249</EventRecordID>
      <Channel>Application</Channel>
      <Computer>gnet-exch1.g.loca</Computer>
      <Security />
     </System>
     <EventData>
      <Data>5065</Data>
     </EventData>
    </Event>
    
    Log Name:   Application
    Source:    MSExchange Unified Messaging
    Date:     9/22/2010 8:29:41 PM
    Event ID:   1010
    Task Category: UMCore
    Level:     Information
    Keywords:   Classic
    User:     N/A
    Computer:   gnet-exch1.g.loca
    Description:
    The telephone interface definitions were successfully loaded from the configuration file: "C:\Program Files\Microsoft\Exchange Server\V14\UnifiedMessaging\root.fsm"
    Event Xml:
    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
     <System>
      <Provider Name="MSExchange Unified Messaging" />
      <EventID Qualifiers="4">1010</EventID>
      <Level>4</Level>
      <Task>2</Task>
      <Keywords>0x80000000000000</Keywords>
      <TimeCreated SystemTime="2010-09-23T01:29:41.000000000Z" />
      <EventRecordID>148248</EventRecordID>
      <Channel>Application</Channel>
      <Computer>gnet-exch1.g.loca</Computer>
      <Security />
     </System>
     <EventData>
      <Data>C:\Program Files\Microsoft\Exchange Server\V14\UnifiedMessaging\root.fsm</Data>
     </EventData>
    </Event>
    
    Log Name:   Application
    Source:    MSExchange Unified Messaging
    Date:     9/22/2010 8:29:36 PM
    Event ID:   1114
    Task Category: UMService
    Level:     Information
    Keywords:   Classic
    User:     N/A
    Computer:   gnet-exch1.g.loca
    Description:
    The Microsoft Exchange Unified Messaging service will attempt to start in the following mode: TCP Only.
    Event Xml:
    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
     <System>
      <Provider Name="MSExchange Unified Messaging" />
      <EventID Qualifiers="16388">1114</EventID>
      <Level>4</Level>
      <Task>4</Task>
      <Keywords>0x80000000000000</Keywords>
      <TimeCreated SystemTime="2010-09-23T01:29:36.000000000Z" />
      <EventRecordID>148247</EventRecordID>
      <Channel>Application</Channel>
      <Computer>gnet-exch1.g.loca</Computer>
      <Security />
     </System>
     <EventData>
      <Data>TCP Only</Data>
     </EventData>
    </Event>

    Thursday, September 23, 2010 1:35 AM
  • 1000 (UM worker started)->1056 (UM worker is ready)->1037 (UM service started)->1131 (UM worker started grammar generation for ASR)->1047 (UM service requires new UM worker)->1046 (UM worker is terminated)->1057 (couldn't generate unique name!)

    1056 (UM worker is initializing)->4999 (Watson report for error in 1057)->1131 again->1000 again->1056 (UM worker is ready)->1047 (UM service requires new UM worker, again)->1046 (UM worker is terminated)->1057 (couldn't generate unique name!)->1427 (UM service crashing)->1430 (UM service crashed)

    In the events above, UM worker has been recreated repeatedly. By default, each UM worker process should be recycled every seven days or 604,800 seconds. So, this frequency is abnormal.

    This issue is most likely related to grammar generation. Please check the UMSpeechGrammar.log in both event 1131, see if there’s any error information

    Please use the Galgrammargenerator tool to update the grammar, see if there’s any related error information

    According to the error events above, I would suspect that the grammar config files have corrupted during the upgrade. Please copy the following files from another UM server

    ·         Mainmenu.grxml

    ·         Contacts.grxml

    ·         Email.grxml

    ·         Common.grxml

    ·         Calendar.grxml

    Path: %ExchangeInstallPath%\UnifiedMessaging\grammars

    Notes: Please backup the old grammar files to other location

    Resources:

    Unified Messaging Speech Grammar Errors and Events

    “Galgrammargenerator.exe and the switches” table in Understanding Automatic Speech Recognition Directory Lookups


    James Luo
    TechNet Subscriber Support (http://technet.microsoft.com/en-us/subscriptions/ms788697.aspx)
    If you have any feedback on our support, please contact tngfb@microsoft.com

    Thursday, September 23, 2010 8:04 AM
    Moderator
  • Hi James,

     

    Ok.  First I tried running the galgrammargenator tool as instructed.  Here are the results.  

    I ran galgrammargenerator -s servername successfully.

    Then galgrammargenerator -d 3digitdialplan successfully

    galgrammargenerator -g and -p both generate that ASSERT: couldn't generate unique name!  error.

     

    I then replaced the grammar files as suggested and that didn't make any difference.

    I opened the UMSpeechGrammar.log associated with the 1131 events and the log is empty.

    UPDATE! It's fixed.  I deleted all of the files out of the en-US folder except for the default files listed by James above.  Re-started the service and it worked!

     


    • Marked as answer by Joe Gadell Thursday, September 23, 2010 9:46 PM
    Thursday, September 23, 2010 9:35 PM
  • Excellent!!
    James Luo
    TechNet Subscriber Support (http://technet.microsoft.com/en-us/subscriptions/ms788697.aspx)
    If you have any feedback on our support, please contact tngfb@microsoft.com
    Friday, September 24, 2010 3:14 AM
    Moderator
  • I had a similar issue.

    Errors such as:

    An unhandled exception occurred in a UM worker process: "Microsoft.Exchange.Diagnostics.ExAssertException: ASSERT: couldn't generate unique name!
       at Microsoft.Exchange.Diagnostics.ExAssert.AssertInternal(String formatString, Object[] parameters)
       at Microsoft.Exchange.UM.UMCore.GalGrammar.GenerateActivePath(CultureInfo culture, String extension)
       at Microsoft.Exchange.UM.UMCore.GalGrammar.MoveToActive(CultureInfo culture, String filePath)
       at Microsoft.Exchange.UM.UMCore.GalGrammarWriter.GenerateCultureFromEntriesFile(ITempFile entriesFile, GalGrammar grammar, CultureInfo culture, Boolean preCompile)
       at Microsoft.Exchange.UM.UMCore.GalGrammarWriter.GenerateAllCulturesFromEntriesFile(ITempFile entriesFile, GalGrammar grammar, Boolean preCompile)
       at Microsoft.Exchange.UM.UMCore.GalGrammarWriter.Generate(GalGrammar grammar, Boolean preCompile)
       at Microsoft.Exchange.UM.UMCore.GrammarGenerator.Generate(Boolean preload, Boolean precompile, StreamWriter logFileStream)
       at Microsoft.Exchange.UM.UMCore.GrammarSchedule.GenerateGrammars(List`1 requiredGrammarFiles, List`1 grammarFiles, StreamWriter logwriter, ExclusionList exclusionList)
       at Microsoft.Exchange.UM.UMCore.GrammarSchedule.GenerateGrammarWorker(Object state)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading._ThreadPoolWaitCallback.PerformWaitCallbackInternal(_ThreadPoolWaitCallback tpWaitCallBack)
       at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback(Object state)".

    And


    An unhandled exception occurred in a UM worker process: "System.ArgumentException: No recognizer of the required ID found. ---> System.Runtime.InteropServices.COMException (0x80004005): Error HRESULT E_FAIL has been returned from a call to a COM component.
       at System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo)
       at Microsoft.Speech.Recognition.RecognizerBase.ExceptionFromSapiCreateRecognizerError(SAPIErrorCodes errorCode)
       --- End of inner exception stack trace ---
       at Microsoft.Speech.Recognition.SpeechRecognitionEngine.Initialize(RecognizerInfo recognizerInfo)
       at Microsoft.Exchange.UM.UcmaPlatform.UcmaPlatform.CompileGrammar(String grxmlGrammarPath, String compiledGrammarPath, CultureInfo culture)
       at Microsoft.Exchange.UM.UMCore.GalGrammarWriter.CompileGrammar(GalGrammar grammar, String grxmlGrammarFileName, CultureInfo culture)
       at Microsoft.Exchange.UM.UMCore.GalGrammarWriter.GenerateCultureFromEntriesFile(ITempFile entriesFile, GalGrammar grammar, CultureInfo culture, Boolean preCompile)
       at Microsoft.Exchange.UM.UMCore.GalGrammarWriter.GenerateAllCulturesFromEntriesFile(ITempFile entriesFile, GalGrammar grammar, Boolean preCompile)
       at Microsoft.Exchange.UM.UMCore.GalGrammarWriter.Generate(GalGrammar grammar, Boolean preCompile)
       at Microsoft.Exchange.UM.UMCore.GrammarGenerator.Generate(Boolean preload, Boolean precompile, StreamWriter logFileStream)
       at Microsoft.Exchange.UM.UMCore.GrammarSchedule.GenerateGrammars(List`1 requiredGrammarFiles, List`1 grammarFiles, StreamWriter logwriter, ExclusionList exclusionList)
       at Microsoft.Exchange.UM.UMCore.GrammarSchedule.GenerateGrammarWorker(Object state)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading._ThreadPoolWaitCallback.PerformWaitCallbackInternal(_ThreadPoolWaitCallback tpWaitCallBack)
       at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback(Object state)".

     

    Deleting some of the files out of the \program files\microsoft\exchange\v14\UnifiedMessaging\grammers\en-us  did not work for me like it did for Joe.

      I tried to uninstall the language pack but it gave me an error about being required for the UM Role.  I tried to install the language pack but it gave me an error about already being installed.

    So my fix was to delete (backup first of course) the files in my en-us folder and copy them all from another working Exchange 2010 server.  I would suspect there is a cleaner way to do it.  If anyone knows what the consequences of my actions might be, please share!

     

     

     

    Monday, June 27, 2011 11:39 PM
  • This has happened to me again.  My theory at the moment is that it happens on Servers where the Unified Messaging role was setup before applying SP1.  At least on the last box, reinstalling the requirements again (speechPlatfomRuntime and ucmaRuntimeSetup) after installing SP1 did the trick.

    Monday, September 26, 2011 9:58 PM
  • Hello,

    it worked only after rebooting the server.

    Thx for the informations i've found here.

    Regards

    Thursday, November 3, 2011 2:20 PM
  • Any chance you could zip up these XML files and either e-mail them to me or put them on a fileserver temporarily?  I would hate to go through the trouble of remotely building a  lab exchange server just to grab these files and it not work. I would greatly appreciate it.
    Saturday, April 7, 2012 10:08 PM